home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / MS-DOS Interrupt List / inter60d / PORTS.B < prev    next >
Text File  |  1999-01-03  |  351KB  |  9,352 lines

  1. Ports List, part 2 of 3
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  3. ----------P0140014F--------------------------
  4. PORT 0140-014F - SCSI (alternate Small Computer System Interface) adapter
  5. Note:    first adapter is at 0340-034F
  6. ----------P0140014F--------------------------
  7. PORT 0140-014F - Xirlink/Relialogic XL-220/221 SCSI adapter
  8. Range:    alternate address at 0150, 0160, 0170
  9. Notes:    XL-220/221 are based on LOGIC Devices L53C80JC4 SCSI controller which
  10.       is compatible with Symbios Logic (formaerly NCR) 53C80
  11.     each SCSI data pin is inverted and compared with correcponding bit
  12.       in the ID select register; if any matches are found while a bus free
  13.       condition exists and SEL is active, SCSI controller will genarate an
  14.       interrupt to indicate a selection or reselection
  15.     pseudo-DMA register is provided by some on-card PLM, and decodes any
  16.       address in the range 01x8-01xF; it should be accessed with 16-bit
  17.       I/O instructions only causing 2 SCSI REQ/ACK hanshakes (8-bit I/O
  18.       is treated as 16-bit, and second byte is lost); delayed assertion of
  19.       the REQ signal or bus free condition on the SCSI bus causes the
  20.       pseudo-DMA register to prolong ISA I/O cycle not asserting IOCHRDY
  21.       signal (SCSI phase mismatch doesn't), and so may cause ISA bus to
  22.       hang in not ready state!
  23.     SCSI BIOS is an 8K ROM located at C8000-CBFFF if I/O port range
  24.       0140-014F is selected, at CC000-CFFFF if I/O port range 0150-015F
  25.       is selected, at D8000-DBFFF if I/O port range 0160-016F is selected,
  26.       and at DC000-DFFFF if I/O port range 0170-017F is selected
  27.  
  28. 0140  R-  current SCSI data bus register
  29. 0140  -W  output data register
  30. 0141  RW  initiator command register (see #P0496)
  31. 0142  RW  mode register (see #P0497)
  32. 0143  RW  target command register (see #P0498)
  33. 0144  R-  current SCSI control register (see #P0499)
  34. 0144  -W  ID select register
  35. 0145  R-  DMA status register (see #P0500)
  36. 0145  -W  start DMA send register
  37.       any write starts DMA send
  38. 0146  R-  input data register
  39.       temporarily holds data byte received from the SCSI bus in DMA mode
  40. 0146  -W  start DMA target receive register
  41.       any write starts target mode DMA receive
  42. 0147  R-  reset error/interrupt register
  43.       any read resets the interrupt request latch and the error latches
  44. 0147  -W  start DMA initiator mode receive register
  45.       any write starts initiator mode DMA receive
  46. 0148w RW  pseudo-DMA register
  47.  
  48. Bitfields for initiator command register:
  49. Bit(s)    Description    (Table P0496)
  50.  7    assert RST
  51.  6    (read) arbitration in progress
  52.     (write) test mode
  53.  5    (read) lost arbitration
  54.  4    assert ACK
  55.  3    assert BSY
  56.  2    assert SEL
  57.  1    assert ATN
  58.  0    assert data bus
  59. SeeAlso: #P0497,#P0498,#P0499,#P0500
  60.  
  61. Bitfields for mode register:
  62. Bit(s)    Description    (Table P0497)
  63.  7    block mode
  64.  6    target mode
  65.  5    enable parity check
  66.  4    enable parity interrupt
  67.  3    enable end of DMA interrupt
  68.  2    monitor BSY
  69.  1    DMA mode
  70.  0    arbitrate
  71. SeeAlso: #P0496
  72.  
  73. Bitfields for target command register:
  74. Bit(s)    Description    (Table P0498)
  75.  7    (read) last byte sent
  76.  6-4    reserved
  77.  3    assert REQ
  78.  2    assert MSG
  79.  1    assert C/D
  80.  0    assert I/O
  81. SeeAlso: #P0496
  82.  
  83. Bitfields for current SCSI control register:
  84. Bit(s)    Description    (Table P0499)
  85.  7    RST
  86.  6    BSY
  87.  5    REQ
  88.  4    MSG
  89.  3    C/D
  90.  2    I/O
  91.  1    SEL
  92.  0    parity
  93. SeeAlso: #P0496
  94.  
  95. Bitfields for DMA status register:
  96. Bit(s)    Description    (Table P0500)
  97.  7    end of DMA
  98.  6    DMA request
  99.  5    parity error
  100.  4    interrupt request
  101.  3    phase match
  102.  2    BSY error
  103.  1    ATN
  104.  0    ACK
  105. SeeAlso: #P0496
  106. ----------P0140014F--------------------------
  107. PORT 0140-014F - Future Domain TMC-16x0 SCSI adapter
  108. Range:    alternate address at 0150, 0160, 0170
  109. Notes:    TMC-1650/1670 have a 25-pin external connector, whereas the 1660 and
  110.       1680 have a SCSI-2 50-pin high-density external connector
  111.     TMC-1670/1680 have floppy disk controller built in
  112.     BIOS versions prior to 3.2 assigned SCSI ID 6 to SCSI adapter,
  113.       versions 3.2 and greater use SCSI ID 7
  114.     the drive ordering implemented in BIOS versions 3.4 and 3.5 is the
  115.       opposite of the order (currently) used by the rest of the SCSI
  116.       industry--for example, under DOS SCSI ID 0 will be D: and SCSI ID 1
  117.       will be C:
  118.     Future Domain TMC-16x0 SCSI adapter series are based upon Future Domain
  119.       TMC-1800/18C50/18C30 SCSI controllers
  120.     TMC-1800/18C50/18C30 are ISA SCSI controllers, TMC-36C70 is a PCI
  121.       version of TMC-18C30
  122.     TMC-1800/18C50 have 8K FIFO, TMC-18C30/36C70 have 2K FIFO
  123.     Future Domain TMC-1650/1660/1670/1680/1610M/1610MER/1610MEX SCSI
  124.       adapters are based on TMC-1800/18C50/18C30
  125.     Quantum ISA-200S/250MG SCSI adapters are based on TMC-18C50 (?)
  126.     Future Domain TMC-3260 and Adaptec AHA-2920 PCI SCSI adapters are
  127.       based on TMC-36C70
  128.  
  129. 0140  R-  read SCSI data register
  130. 0140  -W  write SCSI data register
  131. 0141  R-  SCSI status register (see #P0501)
  132. 0141  -W  SCSI control register (see #P0502)
  133. 0142  R-  TMC status register (see #P0503)
  134. 0142  -W  interrupt control register (see #P0504)
  135. 0143  R-  FIFO status register, TMC-18C50/18C30/36C70 chips only
  136. 0143  -W  SCSI mode control register (see #P0505)
  137. 0144  R-  interrupt condition register, TMC-18C50/18C30/36C70 only (see #P0506)
  138. 0144  -W  TMC control register (see #P0507)
  139. 0145  R-  ID code LSB register
  140.       27h for TMC-1800 chip
  141.       E9h for TMC-18C50/18C30/36C70 chips
  142. 0145  -W  memory control register, TMC-18C50/18C30/36C70 only
  143. 0146  R-  ID code MSB register
  144.       60h for TMC-18C50/18C30 chips
  145.       61h for TMC-1800 chip
  146. 0147  R-  read loopback register
  147. 0147  -W  write loopback register
  148. 0148  RW  SCSI data no ACK register
  149. 0149  R-  interrupt status register (see #P0508)
  150. 014A  R-  configuration register 1 (see #P0509)
  151. 014B  R-  configuration register 2, TMC-18C50/18C30/36C70 only (see #P0510)
  152. 014B  -W  I/O control register, TMC-18C30/36C70 only (see #P0511)
  153. 014Cw R-  read FIFO data register
  154. 014Cw -W  write FIFO data register
  155. 014Ew R-  FIFO data count register
  156. Notes:    any value written into the write loopback register can be read back
  157.       from the read loopback register unchanged (this is used by the BIOS
  158.       to test the controller)
  159.     reading from read SCSI data register and writing to write SCSI data
  160.       register causes REQ/ACK handshake to occur automatically, reading
  161.       and writing the SCSI data no ACK register doesn't
  162.     SCSI FIFO may be used only for DATA IN / DATA OUT phase transfers on
  163.       TMC-1800; on TMC-18C50/18C30 it may also be used for COMMAND phase
  164.       transfers
  165.  
  166. Bitfields for SCSI status register:
  167. Bit(s)    Description    (Table P0501)
  168.  7    not BSY
  169.  6    not MSG
  170.  5    not I/O
  171.  4    not C/D
  172.  3    not REQ
  173.  2    not SEL
  174.  1    parity error???
  175.  0    not ATN
  176. SeeAlso: #P0502,#P0511
  177.  
  178. Bitfields for SCSI control register:
  179. Bit(s)    Description    (Table P0502)
  180.  7    RST
  181.  6    SEL
  182.  5    BSY
  183.  4    ATN
  184.  3    I/O
  185.  2    C/D
  186.  1    MSG
  187.  0    bus enable
  188. SeeAlso: #P0501,#P0503,#P0504
  189.  
  190. Bitfields for TMC status register:
  191. Bit(s)    Description    (Table P0503)
  192.  7    bus enabled
  193.  6    parity enabled
  194.  5    FIFO enabled
  195.  4    =1 data are expected to flow out from FIFO to SCSI bus
  196.     =0 data are expected to flow from SCSI bus into FIFO
  197.  3    SCSI reset
  198.  2    ???
  199.  1    arbitration complete
  200.  0    interrupt request
  201. SeeAlso: #P0502
  202.  
  203. Bitfields for interrupt control register:
  204. Bit(s)    Description    (Table P0504)
  205.  7    enable interrupt on REQ
  206.  6    enable interrupt on SEL
  207.  5    enable arbitration interrupt
  208.  4    enable interrupt on ???
  209.  0-3    FIFO threshold (how many 512 byte blocks in FIFO should be
  210.       full/empty for interrupt to be generated)
  211. SeeAlso: #P0502
  212.  
  213. Bitfields for SCSI mode control register:
  214. Bit(s)    Description    (Table P0505)
  215.  7    synchronous mode
  216.  6    fast SCSI
  217.  5-4    reserved?
  218.  3-0    synchronous transfer period in 25 ns units
  219. SeeAlso: #P0502
  220.  
  221. Bitfields for interrupt condition register:
  222. Bit(s)    Description    (Table P0506)
  223.  7    FIFO error interrupt
  224.  6    forced interrupt???
  225.  5    interrupt on RST
  226.  4    arbitration interrupt
  227.  3    interrupt on SEL
  228.  2    interrupt on REQ
  229.  1    interrupt on ???
  230.  0    ???
  231. SeeAlso: #P0502
  232.  
  233. Bitfields for TMC control register:
  234. Bit(s)    Description    (Table P0507)
  235.  7    enable FIFO
  236.  6    =1 data are expected to flow out from FIFO to SCSI bus
  237.     =0 data are expected to flow from SCSI bus into FIFO
  238.  5    clear forced interrupt, TMC-18C50/18C30/36C70 only
  239.  4    enable interrupt
  240.  3    enable parity
  241.  2    arbitrate
  242.  1    force interrupt???
  243.  0    clear SCSI reset flag???
  244. SeeAlso: #P0502
  245. Note:    on the TMC-1800 the FIFO must be enabled and bit 6 must be set
  246.       according to the expected data direction before a data phase will
  247.       occur (the TMC-1800 probably doesn't generate interrupts on REQ in
  248.       DATA IN / DATA OUT phases); on the TMC-18C50/18C30 it may be done
  249.       when the interrupt on REQ occurs and the SCSI phase is
  250.       DATA IN, DATA OUT or COMMAND
  251.  
  252. Bitfields for interrupt status register:
  253. Bit(s)    Description    (Table P0508)
  254.  7    interrupt on REQ enabled
  255.  6    interrupt on SEL enabled
  256.  5    arbitration interrupt enabled
  257.  4    interrupt on ??? enabled
  258.  3    interrupt enabled
  259.  2    ???
  260.  1    always set???
  261.  0    ???
  262. SeeAlso: #P0502
  263.  
  264. Bitfields for configuration register 1:
  265. Bit(s)    Description    (Table P0509)
  266.  7-6    BIOS address range
  267.     00 C8000h-C9FFFh
  268.     01 CA000h-CBFFFh
  269.     10 CE000h-CFFFFh
  270.     11 DE000h-DFFFFh
  271.  5-4    I/O address range
  272.     00 140h-14Fh
  273.     01 150h-15Fh
  274.     10 160h-16Fh
  275.     11 170h-17Fh
  276.  3-1    interrupt select
  277.     000 IRQ3
  278.     001 IRQ5
  279.     010 IRQ10
  280.     011 IRQ11
  281.     100 IRQ12
  282.     101 IRQ14
  283.     110 IRQ15
  284.     111 no IRQ
  285.  0    reserved???
  286. Note:    the seven on-board configuration jumpers are read through this register
  287. SeeAlso: #P0502,#P0510
  288.  
  289. Bitfields for configuration register 2:
  290. Bit(s)    Description    (Table P0510)
  291.  7    32-bit mode enabled (TMC-18C30/36C70 only???)
  292.  6-2    ???
  293.  1    RAM disabled (TMC-18C30/36C70 only???)
  294.  0    ???
  295. Note:    256 byte on-chip RAM is mapped at offset 1F00h within the BIOS segment
  296. SeeAlso: #P0502,#P0509
  297.  
  298. Bitfields for TMC control register:
  299. Bit(s)    Description    (Table P0511)
  300.  7    enable 32-bit mode
  301.  6-0    ???
  302. SeeAlso: #P0502
  303. --------d-P0140014F--------------------------
  304. PORT 0140-014F - Quantum ISA-200S/250MG SCSI adapter
  305. Range:    alternate address at 0150, 0160, 0170
  306. Note:    Quantum ISA-200S/250MG SCSI adapters are based upon Future Domain
  307.       TMC-18C50 SCSI controller (???)
  308. SeeAlso: PORT 0140h-014Fh"Future Domain TMC-16x0"
  309. ----------P01400157--------------------------
  310. PORT 0140-0157 - RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  311. --------d-P0140015F--------------------------
  312. PORT 0140-015F -  Adaptec AHA-152x SCSI adapter
  313. Range:    alternate address at 0340
  314. ----------P0150015F--------------------------
  315. PORT 0150-015F - Xirlink/Relialogic XL-220/221 SCSI adapter
  316. Range:    alternate address at 0140, 0160, 0170
  317. ----------P0150015F--------------------------
  318. PORT 0150-015F - Future Domain TMC-16x0 SCSI adapter
  319. Range:    alternate address at 0140, 0160, 0170
  320. --------d-P0150015F--------------------------
  321. PORT 0150-015F - Quantum ISA-200S/250MG SCSI adapter
  322. Range:    alternate address at 0140, 0160, 0170
  323. Note:    Quantum ISA-200S/250MG SCSI adapters are based upon Future Domain
  324.       TMC-18C50 SCSI controller (???)
  325. SeeAlso: PORT 0140h-014Fh"Future Domain TMC-16x0"
  326. ----------P015C015D--------------------------
  327. PORT 015C-015D - Dell Enhanced Parallel Port
  328. SeeAlso: PORT 002Eh,PORT 026Eh,PORT 0398h
  329.  
  330. 015C  -W  index for data port
  331. 015D  RW  EPP command data
  332. ----------P015F------------------------------
  333. PORT 015F - ARTEC Handyscanner A400Z.  alternate address at 35F.
  334. ----------P0160016F--------------------------
  335. PORT 0160-016F - Xirlink/Relialogic XL-220/221 SCSI adapter
  336. Range:    alternate address at 0140, 0150, 0170
  337. ----------P0160016F--------------------------
  338. PORT 0160-016F - Future Domain TMC-16x0 SCSI adapter
  339. Range:    alternate address at 0140, 0150, 0170
  340. --------d-P0160016F--------------------------
  341. PORT 0160-016F - Quantum ISA-200S/250MG SCSI adapter
  342. Range:    alternate address at 0140, 0150, 0170
  343. Note:    Quantum ISA-200S/250MG SCSI adapters are based upon Future Domain
  344.       TMC-18C50 SCSI controller (???)
  345. SeeAlso: PORT 0140h-014Fh"Future Domain TMC-16x0"
  346. ----------P0168016F--------------------------
  347. PORT 0168-016F - 4th (Quaternary) EIDE Controller
  348. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  349. SeeAlso: PORT 0170h-0177h,PORT 01E8h-01EFh,PORT 01F0h-01F7h
  350. ----------P01700176--------------------------
  351. PORT 0170-0176 - OPTi "Vendetta" (82C750) CHIPSET - SECONDARY IDE CONTROLLER
  352. Note:    to unlock access to these ports, you must perform two immediately
  353.       successive 16-bit INs from PORT 0171h, followed by 8-bit OUT of 03h
  354.       to PORT 172h
  355. SeeAlso: PORT 01F0h"Vendetta"
  356.  
  357. 0170  RW  read cycle timing register (see #P0536)
  358. 0171  RW  write cycle timing register (see #P0537)
  359. 0172  RW  internal ID register (see #P0538)
  360. 0173  RW  control register (see #P0539)
  361. 0175  RW  strap register (see #P0540)
  362. 0176  RW  miscellaneous register (see #P0541)
  363. ----------P01700177--------------------------
  364. PORT 0170-0177 - HDC 2    (2nd Fixed Disk Controller) (ISA, EISA)
  365. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  366. SeeAlso: PORT 0168h-016Fh,PORT 01E8h-01EFh,PORT 01F0h-01F7h
  367. ----------P0170017F--------------------------
  368. PORT 0170-017F - Xirlink/Relialogic XL-220/221 SCSI adapter
  369. Range:    alternate address at 0140, 0150, 0160
  370. ----------P0170017F--------------------------
  371. PORT 0170-017F - Future Domain TMC-16x0 SCSI adapter
  372. Range:    alternate address at 0140, 0150, 0160
  373. --------d-P0170017F--------------------------
  374. PORT 0170-017F - Quantum ISA-200S/250MG SCSI adapter
  375. Range:    alternate address at 0140, 0150, 0160
  376. Note:    Quantum ISA-200S/250MG SCSI adapters are based upon Future Domain
  377.       TMC-18C50 SCSI controller (???)
  378. SeeAlso: PORT 0140h-014Fh"Future Domain TMC-16x0"
  379. ----------P01780179--------------------------
  380. PORT 0178-0179 - Power Management
  381. SeeAlso: PORT 0026h,#P0377
  382.  
  383. 0178  -W  index selection for data port
  384. 0179  RW  power management data
  385. ----------P0178017F--------------------------
  386. PORT 0178-017F - PC radio by CoZet Info Systems
  387. Range:    The I/O address range is dipswitch selectable from:
  388.        038-03F and 0B0-0BF
  389.        078-07F and 0F0-0FF
  390.        138-13F and 1B0-1BF
  391.        178-17F and 1F0-1FF
  392.        238-23F and 2B0-2BF
  393.        278-27F and 2F0-2FF
  394.        338-33F and 3B0-3BF
  395.        378-37F and 3F0-3FF
  396. Notes:    All of these addresses show a readout of FFh in initial state.
  397.     Once started, all of the addresses show    FBh, whatever might happen.
  398. ----------P01CE01CF--------------------------
  399. PORT 01CE-01CF - ATI Mach32 video chipset - ???
  400.  
  401. 01CE  -W  index register
  402. 01CF  RW  data register
  403. ----------P01E801EF--------------------------
  404. PORT 01E8-01EF - Headland HL21 & Acer M5105 chipsets - SYSTEM CONTROL
  405.  
  406. 01ED  RW  select internal register. Data to/from 01EF
  407. 01EE  R-  ???
  408. 01EF  RW  register value
  409.     05h  = 1000xxxx for low CPU clock speed (4MHz on Morse/Mitac)
  410.          = 0xxxxxxx for high CPU clock speed (16MHz on Morse/Mitac)
  411.     10h memory size
  412.        bits 2-0 = size
  413.            (undefined,512K,640K,1024K,2560K,2048K,4096K,undef.)
  414.     14h ???
  415.        bit 2: 384K RAM of first 1024K relocated to top of memory
  416. ----------P01E801EF--------------------------
  417. PORT 01E8-01EF - 3rd (Tertiary) EIDE Controller
  418. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  419. SeeAlso: PORT 0168h-016Fh,PORT 0170h-0177h,PORT 01F0h-01F7h
  420. ----------P01F001F7--------------------------
  421. PORT 01F0-01F7 - HDC 1    (1st Fixed Disk Controller) (ISA, EISA)
  422. Range:    01F0-01F7 for primary controller, 0170-0177 for secondary controller
  423. SeeAlso: PORT 0170h-0177h,PORT 3510h-3513h
  424.  
  425. 01F0  RW  data register
  426. 01F1  R-  error register (see #P0512)
  427. 01F1  -W  WPC/4     (Write Precompensation Cylinder divided by 4)
  428. 01F2  RW  sector count
  429. 01F3  RW  sector number (CHS mode)
  430.       logical block address, bits 0-7 (LBA mode)
  431. 01F4  RW  cylinder low (CHS mode)
  432.       logical block address, bits 15-8 (LBA mode)
  433. 01F5  RW  cylinder high (CHS mode)
  434.       logical block address, bits 23-16 (LBA mode)
  435. 01F6  RW  drive/head (see #P0513)
  436. 01F7  R-  status register (see #P0514)
  437. 01F7  -W  command register (see #P0515)
  438.  
  439. Bitfields for Hard Disk Controller error register:
  440. Bit(s)    Description    (Table P0512)
  441. ---diagnostic mode errors---
  442.  7    which drive failed (0 = master, 1 = slave)
  443.  6-3    reserved
  444.  2-0    error code
  445.     001    no error detected
  446.     010    formatter device error
  447.     011    sector buffer error
  448.     100    ECC circuitry error
  449.     101    controlling microprocessor error
  450. ---operation mode---
  451.  7    bad block detected
  452.  6    uncorrectable ECC error
  453.  5    reserved
  454.  4    ID found
  455.  3    reserved
  456.  2    command aborted prematurely
  457.  1    track 000 not found
  458.  0    DAM not found (always 0 for CP-3022)
  459. SeeAlso: #P0513,#P0514
  460.  
  461. Bitfields for hard disk controller drive/head specifier:
  462. Bit(s)    Description    (Table P0513)
  463.  7    =1
  464.  6    LBA mode enabled, rather than default CHS mode
  465.  5    =1
  466.  4    drive select (0 = drive 0, 1 = drive 1)
  467.  3-0    head select bits (CHS mode)
  468.     logical block address, bits 27-24 (LBA mode)
  469. SeeAlso: #P0512,#P0514
  470.  
  471. Bitfields for hard disk controller status register:
  472. Bit(s)    Description    (Table P0514)
  473.  7    controller is executing a command
  474.  6    drive is ready
  475.  5    write fault
  476.  4    seek complete
  477.  3    sector buffer requires servicing
  478.  2    disk data read successfully corrected
  479.  1    index - set to 1 each disk revolution
  480.  0    previous command ended in an error
  481. SeeAlso: #P0512,#P0515
  482.  
  483. (Table P0515)
  484. Values for hard disk controller command codes:
  485. Command     Spec    Type    Proto    Description            class:
  486.  00h        opt    nondata    NOP
  487.  08h                device reset
  488.  1xh        opt    nondata    recalibrate              1
  489.  20h        req    PIOin    read sectors with retry          1
  490.  21h        req    PIOin    read sectors without retry      1
  491.  22h        req    PIOin    read long with retry          1
  492.  23h        req    PIOin    read long without retry          1
  493.  30h        req    PIOout    write sectors with retry      2
  494.  31h        req    PIOout    write sectors without retry      2
  495.  32h        req    PIOout    write long with retry          2
  496.  33h        req    PIOout    write long without retry      2
  497.  3Ch     IDE    opt    PIOout    write verify              3
  498.  40h        req    nondata    read verify sectors with retry      1
  499.  41h        req    nondata    read verify sectors without retry 1
  500.  50h        req    vend    format track              2
  501.  7xh        req    nondata    seek                  1
  502.  8xh     IDE    vendor    vend    vendor unique 3
  503.  90h        req    nondata    execute drive diagnostics      1
  504.  91h        req    nondata    initialize drive parameters      1
  505.  92h        opt    PIOout    download microcode
  506.  94h E0h IDE    opt    nondata    standby immediate          1
  507.  95h E1h IDE    opt    nondata    idle immediate              1
  508.  96h E2h IDE    opt    nondata    standby                  1
  509.  97h E3h IDE    opt    nondata    idle                  1
  510.  98h E5h IDE    opt    nondata    check power mode          1
  511.  99h E6h IDE    opt    nondata    set sleep mode              1
  512.  9Ah     IDE    vendor    vend    vendor unique 1
  513.  A0h     ATAPI            packet command
  514.  A1h     ATAPI    opt    PIOin    ATAPI Identify            (see #P0524)
  515.  B0h     SMART    opt        Self Mon., Analysis, Rept. Tech. (see #P0527)
  516.  C0h-C3h IDE    vendor    vend    vendor unique 2
  517.  C4h     IDE    opt    PIOin    read multiple              1
  518.  C5h     IDE    opt    PIOout    write multiple              3
  519.  C6h     IDE    opt    nondata    set multiple mode          1
  520.  C7h     ATA-4            Read DMA O/Q
  521.  C8h     IDE    opt    DMA    read DMA with retry          1
  522.  C9h     IDE    opt    DMA    read DMA without retry          1
  523.  CAh     IDE    opt    DMA    write DMA with retry          3
  524.  CBh     IDE    opt    DMA    write DMA w/out retry          3
  525.  CCh     ATA-4            Write DMA O/Q
  526.  DAh                get media status
  527.  DBh     ATA-2    opt    vend    acknowledge media chng        [Removable]
  528.  DCh     ATA-2    opt    vend    Boot / Post-Boot        [Removable]
  529.  DDh     ATA-2    opt    vend    Boot / Pre-Boot    (ATA-2)        [Removable]
  530.  DEh     ATA-2    opt    vend    door lock            [Removable]
  531.  DFh     ATA-2    opt    vend    door unlock            [Removable]
  532.  E0h-E3h            (second half of commands 94h-96h)
  533.  E4h     IDE    opt    PIOin    read buffer              1
  534.  E5h-E6h            (second half of commands 98h-99h)
  535.  E8h     IDE    opt    PIOout    write buffer              2
  536.  E9h     IDE    opt    PIOout    write same              3
  537.  EAh     ATA-3    opt        Secure Disable            [Security Mode]
  538.  EAh     ATA-3    opt        Secure Lock            [Security Mode]
  539.  EAh     ATA-3    opt        Secure State            [Security Mode]
  540.  EAh     ATA-3    opt        Secure Enable WriteProt        [Security Mode]
  541.  EBh     ATA-3    opt        Secure Enable            [Security Mode]
  542.  EBh     ATA-3    opt        Secure Unlock            [Security Mode]
  543.  ECh     IDE    req    PIOin    identify drive              1 (see #P0516)
  544.  EDh     ATA-2    opt    nondata    media eject            [Removable]
  545.  EEh     ATA-3    opt        identify device DMA            (see #P0516)
  546.  EFh     IDE    opt    nondata    set features              1 (see #P0535)
  547.  F0h-F4h IDE        vend    EATA standard
  548.  F1h                Security Set Password
  549.  F2h                Security Unlock
  550.  F3h                Security Erase Prepare
  551.  F4h                Security Erase Unit
  552.  F5h-FFh IDE    vendor    vend    vendor unique 4
  553.  F5h                Security Freeze Lock
  554.  F6h                Security Disable Password
  555. SeeAlso: #P0512,#P0514
  556.  
  557. Format of IDE/ATA Identify Drive information:
  558. Offset    Size    Description    (Table P0516)
  559.  00h    WORD    general configuration (see #P0517)
  560.  02h    WORD    number of logical cylinders
  561.  04h    WORD    reserved
  562.  06h    WORD    number of logical heads
  563.  08h    WORD    vendor-specific (obsolete: unformatted bytes per track)
  564.  0Ah    WORD    vendor-specific (obsolete: unformatted bytes per sector)
  565.  0Ch    WORD    number of logical sectors
  566.  0Eh    WORD    vendor-specific
  567.  10h    WORD    vendor-specific
  568.  12h    WORD    vendor-specific
  569.  14h 10 WORDs    serial number
  570.         no serial number if first word is 0000h
  571.         else blank-padded ASCII serial number
  572.  28h    WORD    vendor-specific
  573.         [buffer type: 01h single-sector, 02h multisector,
  574.           03h multisector with read cache]
  575.  2Ah    WORD    controller buffer size in 512-byte sectors
  576.         0000h = unspecified
  577.  2Ch    WORD    number of vendor-specific (usually ECC) bytes on
  578.           Read/Write Long; 0000h = unspecified
  579.  2Eh  4    WORDs    firmware revision
  580.         no revision number if first word is 0000h
  581.         else blank-padded ASCII revision number
  582.  36h 20    WORDs    model number
  583.         no model number if first word is 0000h
  584.         else blank-padded ASCII model string
  585.  5Eh    WORD    read/write multiple support
  586.         bits 7-0: maximum number of sectors per block supported
  587.             00h if read/write multiple not supported
  588.         bits 15-8: vendor-specified
  589.  60h    WORD    able to do doubleword transfers if nonzero
  590.  62h    WORD    capabilities (see #P0518)
  591.  64h    WORD    security mode
  592.         bit 15: security-mode feature set supported
  593.         bits 14-8: maximum number of passwords supported
  594.  66h    WORD    PIO data transfer cycle timing
  595.  68h    WORD    single-word DMA data transfer cycle timing
  596.  6Ah    WORD    field validity
  597.         bit 0: offsets 6Ch-75h valid
  598.         bit 1: offsets 80h-8Dh valid
  599.  6Ch    WORD    logical cylinders in current translation mode
  600.  6Eh    WORD    logical heads in current translation mode
  601.  70h    WORD    logical sectors per track in current translation mode
  602.  72h    DWORD    current capacity in sectors (excluding device-specific uses)
  603.  76h    WORD    multiple-sector support
  604.         bits 7-0: count for read/write multiple command
  605.         bit 8:    multiple-sector setting is valid
  606.  78h    DWORD    total number of user-addressable sectors (LBA mode)
  607.         00000000h if LBA mode not supported
  608.  7Ch    WORD    single-word DMA transfer modes
  609.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  610.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  611.  7Eh    WORD    multiword DMA transfer
  612.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  613.         high byte is bitmap of active mode (bit 8 = mode 0, etc.)
  614.  80h    WORD    supported flow control PIO transfer modes
  615.  82h    WORD    minimum multiword DMA transfer cycle time in ns
  616.  84h    WORD    recommended multiword DMA cycle time in ns
  617.  86h    WORD    minimum non-flow-control PIO transfer cycle time in ns
  618.  88h    WORD    minimum PIO transfer cycle time with IORDY in ns
  619.  8Ah  2 WORDs    reserved for future PIO modes (0)
  620.  8Eh  2 WORDs    reserved (0)
  621.  92h    WORD    command queueing/overlapped operation (see #P0523)
  622.  94h  6 WORDs    reserved (0)
  623.  A0h    WORD    major revision number of specification to which device conforms
  624.         01h = ATA-1, 02h = ATA-2, etc.    0000h/FFFFh = not reported
  625.  A2h    WORD    minor revision number of specification to which device conforms
  626.         0000h/FFFFh = not reported
  627.  A4h    WORD    feature set support 1 (see #P0519)
  628.         (only valid if revision reported in A0h/A2h)
  629.  A6h    WORD    feature set support 2 (see #P0520)
  630.         (only valid if revision reported in A0h/A2h)
  631.  A8h    WORD    (ATA/ATAPI-4) feature set support extension (see #P0521)
  632.  AAh    WORD    feature set enabled 1 (see #P0522)
  633.         (only valid if revision reported in A0h/A2h)
  634.  ACh    WORD    feature set enabled 2 (see #P0520)
  635.         (only valid if revision reported in A0h/A2h)
  636.  AEh    WORD    (ATA/ATAPI-4) feature set enabled extension (see #P0521)
  637.  B0h 42 WORDs    reserved (0)
  638. 100h 32 WORDs    vendor-specific
  639. 100h    WORD    security status
  640. 140h 96 WORDs    reserved (0)
  641. SeeAlso: #P0524,#00267
  642.  
  643. Bitfields for IDE general configuration:
  644. Bit(s)    Description    (Table P0517)
  645.  15    device class
  646.     =0 ATA device
  647.     =1 ATAPI device
  648.  14    requires format speed tolerance gap
  649.  13    supports track offset option
  650.  12    supports data strobe offset
  651.  11    disk rotational sped tolerance > 0.5%
  652.  10-8    disk transfer rate
  653.     001 <= 5Mbit/sec
  654.     010 5-10 Mbit/sec
  655.     100 > 10Mbit/sec
  656.  7-6    drive type
  657.     01 fixed media
  658.     10 removable media
  659.  5    synchronized drive motor option enabled
  660.  4    head-switching time > 15 microseconds
  661.  3    encoding
  662.     =0 MFM
  663.  2-1    sector type
  664.     01 hard-sectored
  665.     10 soft-sectored
  666.  0    unused (0)
  667. SeeAlso: #P0516
  668.  
  669. Bitfields for IDE capabilities:
  670. Bit(s)    Description    (Table P0518)
  671.  13    Standby Timer values used according to ATA standard
  672.  11    IORDY supported
  673.  10    device can disable use of IORDY
  674.  9    LBA mode supported
  675.  8    DMA supported
  676. SeeAlso: #P0516
  677.  
  678. Bitfields for ATA feature set support 1:
  679. Bit(s)    Description    (Table P0519)
  680.  15    Identify Device DMA command is supported
  681.  14    NOP (00h) command is supported
  682.  13    Read Buffer command is supported
  683.  12    Write Buffer command is supported
  684.  11    Write Verify command is supported
  685.  10    host protected area feature set is supported
  686.  9    Device Reset (08h) command is supported
  687.  8    Service interrupt is supported
  688.  7    release interrupt is supported
  689.  6    device supports look-ahead
  690.  5    device supports write cache
  691.  4    PACKET command feature set is supported
  692.  3    power management is supported
  693.  2    removable-media feature set is supported
  694.  1    security feature set is supported
  695.  0    SMART feature set is supported
  696. Note:    values of 0000h and FFFFh indicate that this field is not supported
  697. SeeAlso: #P0516,#P0520,#P0521
  698.  
  699. Bitfields for ATA feature set support/enabled 2:
  700. Bit(s)    Description    (Table P0520)
  701.  15    must be 0 if this field is supported
  702.  14    must be 1 if this field is supported
  703.  13-2    reserved
  704.  1    Read DMA O/Q (C7h) and Write DMA O/Q (CCh) commands supported/enabled
  705.  0    Download Microcode (92h) command is supported/enabled
  706. SeeAlso: #P0516,#P0522,#P0519,#P0521
  707.  
  708. Bitfields for ATA feature set support extension:
  709. Bit(s)    Description    (Table P0521)
  710.  15    must be 0 if this field is supported
  711.  14    must be 1 if this field is supported
  712.  13-0    reserved
  713. SeeAlso: #P0516,#P0519,#P0520
  714.  
  715. Bitfields for ATA feature set enabled 1:
  716. Bit(s)    Description    (Table P0522)
  717.  15    Identify Device DMA command is supported
  718.  14    NOP (00h) command is supported
  719.  13    Read Buffer command is supported
  720.  12    Write Buffer command is supported
  721.  11    Write Verify command is supported
  722.  10    host protected area feature set is supported
  723.  9    Device Reset (08h) command is supported
  724.  8    Service interrupt is enabled
  725.  7    release interrupt is enabled
  726.  6    look-ahead is enabled
  727.  5    write cache is enabled
  728.  4    PACKET command feature set is enabled
  729.  3    power management is enabled
  730.  2    removable-media feature set is enabled
  731.  1    security feature set is enabled
  732.  0    SMART feature set is enabled
  733. SeeAlso: #P0516,#P0520
  734.  
  735. Bitfields for ATA/ATAPI-4 command queueing/overlapped operation support:
  736. Bit(s)    Description    (Table P0523)
  737.  15    reserved
  738.  14    device supports command queueing
  739.  13    device supports overlapped operation
  740.  12-5    reserved
  741.  4-0    maximum depth of queued commands supported (0 if bit 14 clear)
  742. SeeAlso: #P0516
  743.  
  744. Format of ATAPI Identify Information:
  745. Offset    Size    Description    (Table P0524)
  746.  00h    WORD    general configuration (see #P0525)
  747.  02h  9 WORDs    ???
  748.  14h 10 WORDs    serial number
  749.         no serial number if first word is 0000h
  750.         else blank-padded ASCII serial number
  751.  28h  3 WORDs    vendor-specific
  752.  2Eh  4    WORDs    firmware revision
  753.         no revision number if first word is 0000h
  754.         else blank-padded ASCII revision number
  755.  36h 20    WORDs    model number
  756.         no model number if first word is 0000h
  757.         else blank-padded ASCII model string
  758.  5Eh    WORD    vendor-specific
  759.  60h    WORD    reserved (0)
  760.  62h    WORD    capabilities (see #P0518)
  761.  64h    WORD    security mode???
  762.  66h    WORD    PIO data transfer cycle timing
  763.  68h    WORD    single-word DMA data transfer cycle timing
  764.  6Ah    WORD    field validity
  765.         bit 0: offsets 6Ch-73h valid
  766.         bit 1: offsets 80h-8Dh valid
  767.  6Ch    WORD    ??? logical cylinders in current translation mode
  768.  6Eh    WORD    ??? logical heads in current translation mode
  769.  70h    WORD    ??? logical sectors per track in current translation mode
  770.  72h  2    WORDs    ??? current capacity in sectors
  771.  76h    WORD    ??? multiple-sector count for read/write multiple command
  772.  78h  2    WORDs    ??? total number of user-addressable sectors (LBA mode)
  773.  7Ch    WORD    single-word DMA transfer modes
  774.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  775.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  776.  7Eh    WORD    multiword DMA transfer
  777.         low byte is bitmap of supported modes (bit 0 = mode 0, etc.)
  778.         high bytes is bitmap of active mode (bit 8 = mode 0, etc.)
  779.  80h    WORD    supported flow control PIO transfer modes
  780.  82h    WORD    minimum multiword DMA transfer cycle time
  781.  84h    WORD    recommended multiword DMA cycle time
  782.  86h    WORD    minimum non-flow-control PIO transfer cycle time
  783.  88h    WORD    minimum PIO transfer cycle time with IORDY
  784.  8Ah  2 WORDs    reserved for future PIO modes (0)
  785.  8Eh    WORD    typical time for release when processing overlapped CMD in
  786.           microseconds
  787.  90h    WORD    ???
  788.  92h    WORD    major ATAPI version number
  789.  94h    WORD    minor ATAPI version number
  790.  96h 54 WORDs    reserved (0)
  791. 100h 32 WORDs    vendor-specific
  792. 140h 96 WORDs    reserved (0)
  793. SeeAlso: #P0516
  794.  
  795. Bitfields for ATAPI General Configuration:
  796. Bit(s)    Description    (Table P0525)
  797.  15-14    device type
  798.     0x not ATAPI
  799.     10 ATAPI
  800.     11 reserved
  801.  13    reserved
  802.  12    device present (non-ATAPI)
  803.  12-8    ATAPI device type (see #P0526)
  804.  7    device is removable
  805.  6-5    CMD DMA Request type
  806.     00 microprocessor DRQ
  807.     01 interrupt DRQ
  808.     10 accelerated DRQ
  809.     11 reserved
  810.  4-2    reserved
  811.  1-0    CMD packet size (00 = 12 bytes, 01 = 16 bytes)
  812. SeeAlso: #P0524
  813.  
  814. (Table P0526)
  815. Values for ATAPI device type:
  816.  00h    direct-access device (i.e. disk drive)
  817.  01h    sequential-access device (i.e. tape drive)
  818.  02h    printer
  819.  03h    processor
  820.  04h    write-once device
  821.  05h    CD-ROM
  822.  06h    scanner
  823.  07h    optical memory
  824.  08h    medium changer
  825.  09h    communications device
  826.  0Ah    reserved for ACS IT8
  827.  0Bh    reserved for ACS IT8
  828.  0Ch    array controller device (i.e. RAID)
  829.  0Dh-1Eh reserved
  830.  1Fh    unknown type or no device
  831. SeeAlso: #P0525
  832.  
  833. (Table P0527)
  834. Values for Self-Monitoring, Analysis, Reporting Technology (SMART) subcommand:
  835.  D0h    Read Attribute Values (optional) (see #P0529)
  836.     results returned in 512-byte sector read from controller
  837.  D1h    Read Attribute Thresholds (optional) (see #P0528)
  838.     results returned in 512-byte sector read from controller
  839.  D2h    Disable Attribute Autosave (optional)
  840.     sector-count register set to 0000h
  841.  D2h    Enable Attribute Autosave
  842.     sector-count register set to 00F1h
  843.  D3h    Save Attribute Values (optional)
  844.  D4h    execute off-line tests immediately (optional)
  845.  D5h-D6h reserved
  846.  D7h    vendor-specific
  847.  D8h    Enable SMART Operations
  848.  D9h    Disable SMART Operations
  849.  DAh    Return SMART Status
  850.     if any threshold(s) exceeded, CylinderLow set to F4h and CylinderHigh
  851.       set to 2Ch
  852.  DBh    Enable/Disable Automatic Off-Line Data Collection
  853.     sector-count register set to 0000h to disable, 00F8h to enable
  854.  DCh-DFh reserved
  855.  E0h-EFh vendor-specific
  856. Note:    to access SMART commands, the Cylinder Low register must be set to
  857.       004Fh and the Cylinder High register must be set to 00C2h before
  858.       invoking the SMART command with the SMART command number in the
  859.       Features register
  860. SeeAlso: #P0515
  861.  
  862. Format of S.M.A.R.T. attribute thresholds sector:
  863. Offset    Size    Description    (Table P0528)
  864.  00h    WORD    data structure revision number (0005h for SMART Revision 2.0)
  865.  02h 12 BYTEs    attribute threshold data 1 (see #P0531)
  866.  ...
  867. 14Eh 12 BYTEs    attribute threshold data 30 (see #P0531)
  868. 16Ah 18 BYTEs    reserved (0)
  869. 17Ch 131 BYTEs    vendor-specific
  870. 1FFh    BYTE    checksum (two's complement of eight-bit sum of first 511 bytes)
  871. Note:    if the drive provides fewer than 30 attributes, all remaining attribute
  872.       records are filled with NUL (00h) bytes
  873. SeeAlso: #P0527,#P0529
  874.  
  875. Format of S.M.A.R.T. attribute values sector:
  876. Offset    Size    Description    (Table P0529)
  877.  00h    WORD
  878.  02h 12 BYTEs    attribute value data 1 (see #P0532)
  879.  ...
  880. 14Eh 12 BYTEs    attribute value data 30 (see #P0532)
  881. 16Ah    BYTE    off-line data collection status (see #P0533)
  882. 16Bh    BYTE    vendor-specific
  883. 16Ch    WORD    time to complete off-line data collection, in seconds
  884.         0001h-FFFFh
  885. 16Eh    BYTE    vendor-sepcific
  886. 16Fh    BYTE    off-line data collection capability (see #P0534)
  887. 170h    WORD    S.M.A.R.T. capabilities (see #P0530)
  888. 172h 16 BYTEs    reserved (0)
  889. 182h 125 BYTEs    vendor-specific
  890. 1FFh    BYTE    checksum (two's complement of eight-bit sum of first 511 bytes)
  891. Note:    if the drive provides fewer than 30 attributes, all remaining attribute
  892.       records are filled with NUL (00h) bytes
  893. SeeAlso: #P0527,#P0528
  894.  
  895. Bitfields for S.M.A.R.T capabilities:
  896. Bit(s)    Description    (Table P0530)
  897.  0    attributes saved on going into power-saving mode
  898.  1    Enable/Disable Attribute Autosave subcommands are supported
  899.  2-15    reserved
  900. SeeAlso: #P0529
  901.  
  902. Format of S.M.A.R.T. attribute threshold:
  903. Offset    Size    Description    (Table P0531)
  904.  00h    BYTE    attribute ID (01h-FFh)
  905.  01h    BYTE    attribute threshold
  906.         00h always passing
  907.         01h minimum threshold value
  908.         FDh maximum threshold value
  909.         FEh invalid (do not use)
  910.         FFh always failing (for testing)
  911.  02h 10 BYTEs    reserved (0)
  912. Note:    the attribute ID and actual threshold values are vendor-specific
  913. SeeAlso: #P0528,#P0532
  914.  
  915. Format of S.M.A.R.T attribute value:
  916. Offset    Size    Description    (Table P0532)
  917.  00h    BYTE    attribute ID (01h-FFh)
  918.  01h    WORD    status flags
  919.         bit 0: pre-failure/advisory
  920.             =0 value < threshold indicates usage/age exceeding
  921.                   design life
  922.             =1 value < threshold indicates pre-failure condition
  923.         bit 1: on-line data collection
  924.         bits 2-5 vendor-specific
  925.         bits 6-15 reserved
  926.  03h    BYTE    attribute value (01h-FDh)
  927.         initial value prior to data collection is 64h
  928.  04h  8 BYTEs    vendor-specific
  929. SeeAlso: #P0529,#P0531
  930.  
  931. (Table P0533)
  932. Values for S.M.A.R.T. off-line data collection status:
  933.  00h    off-line collection never started
  934.  01h    reserved
  935.  02h    off-line data collection completed successfully
  936.  03h    reserved
  937.  04h    off-line data collection suspended by command from host
  938.  05h    off-line data collection aborted by command from host
  939.  06h    off-line data collection aborted due to fatal error
  940.  07h-3Fh reserved
  941.  40h-7Fh vendor-specific
  942.  80h    off-line collection never started (auto-offline feature enabled)
  943.  81h    reserved
  944.  82h    off-line data collection completed successfully (auto-offline feature
  945.       enabled)
  946.  83h    reserved
  947.  84h    off-line data collection suspended by command from host (auto-offline
  948.       feature enabled)
  949.  85h    off-line data collection aborted by command from host (auto-offline
  950.       feature enabled)
  951.  86h    off-line data collection aborted due to fatal error (auto-offline
  952.       feature enabled)
  953.  87h-BFh reserved
  954.  C0h-FFh vendor-specific
  955. SeeAlso: #P0529,#P0534
  956.  
  957. Bitfields for S.M.A.R.T. off-line data collection capabilities:
  958. Bit(s)    Description    (Table P0534)
  959.  0    Execute Off-Line Immediate (D4h) subcommand is implemented
  960.  1    Enable/Disable Automatic Off-Line subcommand is implemented
  961.  2    abort/resume on interrupting command
  962.     =0 off-line resumes automatically after an interrupting command
  963.     =1 off-line collection is aborted by an interrupting command
  964.  3-7    reserved
  965. SeeAlso: #P0527
  966.  
  967. (Table P0535)
  968. Values for Feature Code:
  969.  01h    [opt] 8-bit instead of 16-bit data transfers
  970.  02h    [opt] enable write cache
  971.  03h          set transfer mode as specified by Sector Count register
  972.  04h    [opt] enable all automatic defect reassignment
  973.  22h    [opt] Write Same, user-specified area
  974.  33h    [opt] disable retries
  975.  44h          specify length of ECC bytes used by Read Long and Write Long
  976.  54h    [opt] set cache segments (value in Sector Count register)
  977.  55h          disable look-ahead
  978.  66h          disable reverting to power-on defaults
  979.  77h    [opt] disable ECC
  980.  81h    [opt] 16-bit instead of 8-bit data transfers
  981.  82h    [opt] disable write cache
  982.  84h    [opt] disable all automatic defect reassignment
  983.  88h    [opt] enable ECC
  984.  99h    [opt] enable retries
  985.  9Ah    [opt] set device maximum average current
  986.  AAh          enable look-ahead
  987.  ABh    [opt] set maximum prefecth (value in Sector Count register)
  988.  BBh          use four bytes of ECC on Read Long and Write Long (for compat.)
  989.  CCh          enable reverting to power-on defaults
  990.  DDh    [opt] Write Same, entire disk
  991. SeeAlso: #00266
  992. ----------P01F001F6--------------------------
  993. PORT 01F0-01F6 - OPTi "Vendetta" (82C750) CHIPSET - PRIMARY IDE CONTROLLER
  994. Note:    to unlock access to these ports, you must perform two immediately
  995.       successive 16-bit INs from PORT 01F1h, followed by 8-bit OUT of 03h
  996.       to PORT 1F2h
  997. SeeAlso: PORT 0170h"Vendetta",PORT 01F0h"HDC 1"
  998.  
  999. 01F0  RW  read cycle timing register (see #P0536)
  1000. 01F1  RW  write cycle timing register (see #P0537)
  1001. 01F2  RW  internal ID register (see #P0538)
  1002. 01F3  RW  control register (see #P0539)
  1003. 01F5  RW  strap register (see #P0540)
  1004. 01F6  RW  miscellaneous register (see #P0541)
  1005.  
  1006. Bitfields for OPTi "Vendetta" IDE controller read cycle timing register:
  1007. Bit(s)    Description    (Table P0536)
  1008.  7-4    DRD# pulse width - 1 LCLKs on 16-bit IDE data register read
  1009.  3-0    recovery time between DRD# and DA2-0/DCSx# - 2 LCLKs after 16-bit IDE
  1010.       data register read
  1011. Notes:    if register 1F6h/176h bit 0 = 0, controls drive selected by
  1012.       register 1F3h/173h bits 3-2
  1013.     if register 1F6h/176h bit 0 = 1, controls drive not selected by
  1014.       register 1F3h/173h bits 3-2, if register 1F3h/173h bit 7 = 1
  1015. SeeAlso: #P0537,#P0538,#P0539
  1016.  
  1017. Bitfields for OPTi "Vendetta" IDE controller write cycle timing register:
  1018. Bit(s)    Description    (Table P0537)
  1019.  7-4    DWR# pulse width - 1 LCLKs on 16-bit IDE data register write
  1020.  3-0    recovery time between DWR# and DA2-0/DCSx# - 2 LCLKs after 16-bit IDE
  1021.       data register write
  1022. Notes:    if register 1F6h/176h bit 0 = 0, controls drive selected by
  1023.       register 1F3h/173h bits 3-2
  1024.     if register 1F6h/176h bit 0 = 1, controls drive not selected by
  1025.       register 1F3h/173h bits 3-2, if register 1F3h/173h bit 7 = 1
  1026. SeeAlso: #P0536,#P0539
  1027.  
  1028. Bitfields for OPTi "Vendetta" IDE controller internal ID register:
  1029. Bit(s)    Description    (Table P0538)
  1030.  7    controller register access disable (write-only)
  1031.  6    controller register access disable until power-down or reset
  1032.       (write-only)
  1033.  5-2    reserved (read-only)
  1034.  1-0    reserved (11, otherwise all controller register writes blocked)
  1035. SeeAlso: #P0540
  1036.  
  1037. Bitfields for OPTi "Vendetta" IDE controller control register:
  1038. Bit(s)    Description    (Table P0539)
  1039.  7    enable 1F0h-1F1h/170h-171h and 1F6h/176h bits 5-1 cycle timing
  1040.       set for drive not selected by 1F3h/173h bits 3-2
  1041.  6-5    reserved (read-only)
  1042.  4    (primary IDE controller) minimum read wait states
  1043.     0 = 2 wait states
  1044.     1 = 1 wait states
  1045.     (secondary IDE controller) reserved
  1046.  3    enable 1F0h-1F1h/170h-171h cycle timing set for drive 1
  1047.  2    enable 1F0h-1F1h/170h-171h cycle timing set for drive 0
  1048.  1    reserved
  1049.  0    reserved (1) (read-only)
  1050. SeeAlso: #P0540,#P0541
  1051.  
  1052. Bitfields for OPTi "Vendetta" IDE controller strap register:
  1053. Bit(s)    Description    (Table P0540)
  1054.  7    reserved (1) (read-only)
  1055.  6-5    revision number (read-only)
  1056.     11 = chip revision in PCI configuration register 08h (see #00878)
  1057.       (see #00931)
  1058.  4    (primary IDE controller) DINTR state (read-only)
  1059.     (secondary IDE controller) SDINTR state (read-only)
  1060.  3-2    (primary IDE controller only) IDE device cycle time (read-only)
  1061.     value determined by PCI config register 40h bits 1-0 (see #00931)
  1062.  1    reserved (1) (read-only)
  1063.  0    (primary IDE controller only) PCI CLK
  1064.     0 = 33 MHz
  1065.     1 = 25 MHz
  1066. SeeAlso: #P0539,#P0541,#P0538
  1067.  
  1068. Bitfields for OPTi "Vendetta" IDE controller miscellaneous register:
  1069. Bit(s)    Description    (Table P0541)
  1070.  7    reserved
  1071.  6    read prefetch enable
  1072.  5-4    address setup time between DRD#/DWR# active and
  1073.       DA2-0/DCS3#/DCS1# - 1 LCLKs
  1074.  3-1    minimum number of LCLKs between DRDY# high and DRD#/DRW# inactive - 2
  1075.  0    cycle timing register switch (1F0h/170h and 1F1h/171h)
  1076. SeeAlso: #P0539,#P0540
  1077. ----------P01F8------------------------------
  1078. PORT 01F8 - ???
  1079.  
  1080. 01F8  RW  ???
  1081.         bit 0: A20 gate control (set = A20 enabled, clear = disabled)
  1082. ----------P01F901FF--------------------------
  1083. PORT 01F9-01FF - PC radio by CoZet Info Systems
  1084. Range:    The I/O address range is dipswitch selectable from:
  1085.        038-03F and 0B0-0BF
  1086.        078-07F and 0F0-0FF
  1087.        138-13F and 1B0-1BF
  1088.        178-17F and 1F0-1FF
  1089.        238-23F and 2B0-2BF
  1090.        278-27F and 2F0-2FF
  1091.        338-33F and 3B0-3BF
  1092.        378-37F and 3F0-3FF
  1093. Notes:    All of these addresses show a readout of FFh in initial state.
  1094.     Once started, all of the addresses show    FBh, whatever might happen.
  1095. --------d-P0200------------------------------
  1096. PORT 0200 - Digidesign 'Session 8' HARD-DISK RECORDING SYSTEM
  1097. SeeAlso: PORT 0300h"Digidesign"
  1098. ----------P0200020F--------------------------
  1099. PORT 0200-020F - Game port reserved I/O address space
  1100. 0200-0207 - Game port, eight identical addresses on some boards
  1101.  
  1102. 0201  R-  read joystick position and status (see #P0542)
  1103. 0201  -W  fire joystick's four one-shots
  1104. 0201  RW  gameport on mc-soundmachine, mc 03-04/1992: Adlib-compatible,
  1105.         Covox 'voice master' & 'speech thing' compatible soundcard.
  1106.         (enabled if bit1=1 in PORT 038Fh. Because it is disabled on
  1107.         power-on, it cannot be found by BIOS) (see PORT 0388h-038Fh)
  1108.  
  1109. Bitfields for joystick position and status:
  1110. Bit(s)    Description    (Table P0542)
  1111.  7    status B joystick button 2 / D paddle button
  1112.  6    status B joystick button 1 / C paddle button
  1113.  5    status A joystick button 2 / B paddle button
  1114.  4    status A joystick button 1 / A paddle button
  1115.  3    B joystick Y coordinate       / D paddle coordinate
  1116.  2    B joystick X coordinate       / C paddle coordinate
  1117.  1    A joystick Y coordinate       / B paddle coordinate
  1118.  0    A joystick X coordinate       / A paddle coordinate
  1119. ----------P020002FF--------------------------
  1120. PORT 0200-02FF - Sunshine uPW48, programmer for EPROM version CPU's 8748/8749
  1121. Range:    4 bit DIP switch installable in the range 20x-2Fx
  1122.  
  1123. 0200-0203    adresses of the 8255 on the uPW48
  1124. 0208-020B    adresses of ??? on the uPW48 (all showing zeros)
  1125. ----------P02080209--------------------------
  1126. PORT 0208-0209 - Intel 82C212B "Neat" chipset - EMS emulation control
  1127. Range:    may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, 02E8
  1128. ----------P0208020A--------------------------
  1129. PORT 0208-020A - Chips&Technologies 82C235 "SCAT" chipset - EMS PAGE REGISTERS
  1130. Range:    PORT 0208h or PORT 0218h, depending on configuration register 4Fh
  1131.       (see #P0067)
  1132. SeeAlso: PORT 0022h"82C235"
  1133.  
  1134. 0208  RW  EMS page register
  1135. 0209  RW  EMS page register
  1136. 020A  RW  EMS page register
  1137. ----------P020C020F--------------------------
  1138. PORT 020C-020F - AIMS LAB PC Radio
  1139. Range:    configurable to PORT 020Ch or PORT 030Ch
  1140. Notes:    writing a value with bit 3 set to one of these ports turns on the
  1141.       radio; writing a value with bit 3 clear turns it off
  1142.     PORT 020Eh bits 1 indicates status of some kind
  1143. ----------P02100217--------------------------
  1144. PORT 0210-0217 - Expansion unit (XT)
  1145.  
  1146. 0210  -W  latch expansion bus data
  1147. 0210  R-  verify expansion bus data
  1148. 0211  -W  clear wait, test latch
  1149. 0211  R-  High byte data address
  1150. 0212  R-  Low byte data address
  1151. 0213  -W  0=enable,  1=disable expansion unit
  1152. 0214  -W  latch data  (receiver card port)
  1153. 0214  R-  read data   (receiver card port)
  1154. 0215  R-  High byte of address, then Low byte    (receiver card port)
  1155. ----------P02100211--------------------------
  1156. PORT 0210-0211 - Game Blaster
  1157. Range:    PORT 02x0h-02x1h, x=1,2,...
  1158.  
  1159. 0210  -W  register index
  1160. 0211  ?W  register data
  1161. ----------P02180219--------------------------
  1162. PORT 0218-0219 - Intel 82C212B "Neat" chipset - EMS emulation control
  1163. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  1164. ----------P0218021A--------------------------
  1165. PORT 0218-021A - Chips&Technologies 82C235 "SCAT" chipset - EMS PAGE REGISTERS
  1166. Range:    PORT 0208h or PORT 0218h, depending on configuration register 4Fh
  1167.       (see #P0067)
  1168. SeeAlso: PORT 0022h"82C235"
  1169.  
  1170. 0218  RW  EMS page register
  1171. 0219  RW  EMS page register
  1172. 021A  RW  EMS page register
  1173. ----------P02200223--------------------------
  1174. PORT 0220-0223 - Sound Blaster / Adlib port (Stereo)
  1175. SeeAlso: PORT 0388h-0389h
  1176.  
  1177. 0220  R-  Left speaker -- Status port
  1178. 0220  -W  Left speaker -- Address port
  1179. 0221  -W  Left speaker -- Data port
  1180. 0222  R-  Right speaker -- Status port
  1181. 0222  -W  Right speaker -- Address port
  1182. 0223  -W  Right speaker -- Data port
  1183. ----------P02200227--------------------------
  1184. PORT 0220-0227 - Soundblaster PRO and SSB 16 ASP
  1185. ----------P02200228--------------------------
  1186. PORT 0220-0228 - C&T 82C570 CHIPSlink '3270' Protocol Controller
  1187. !!!chips\82c570.pdf p.7
  1188. ----------P0220022F--------------------------
  1189. PORT 0220-022F - Soundblaster PRO 2.0
  1190. ----------P0220022F--------------------------
  1191. PORT 0220-022F - Soundblaster PRO 4.0
  1192. Note:    the FM music is accessible on 0388/0389 for compatibility.
  1193.  
  1194. 0220  R-  left FM status port
  1195. 0220  -W  left FM music register address port (index)
  1196. 0221  RW  left FM music data port
  1197. 0222  R-  right FM status port
  1198. 0222  -W  right FM music register address port (index)
  1199. 0223  RW  right FM music data port
  1200. 0224  -W  mixer register address port (index) (see #P0543)
  1201. 0225  RW  mixer data port
  1202. 0226  -W  DSP reset
  1203. 0228  R-  FM music status port
  1204. 0228  -W  FM music register address port (index)
  1205. 0229  -W  FM music data port
  1206. 022A  R-  DSP read data (voice I/O and Midi)
  1207. 022C  -W  DSP write data / write command
  1208. 022C  R-  DSP write buffer status (bit 7)
  1209. 022E  R-  DSP data available status (bit 7)
  1210.  
  1211. (Table P0543)
  1212. Values for SB Mixer register index:
  1213.  Index    Description        PORT 0225h data
  1214.  00h    reset            00h = zero all mixer controls
  1215.  04h    voice select        high nybble = left, low nybble = right
  1216.  0Ah    microphone gain        bits 2-0 = gain
  1217.  22h    master gain        high nybble = left, low nybble = right
  1218.  26h    MIDI gain        high nybble = left, low nybble = right
  1219.  28h    CD gain            high nybble = left, low nybble = right
  1220.  2Eh    Line In            high nybble = left, low nybble = right
  1221.  30h    Master Left        bits 7-3 = volume
  1222.  31h    Master Right        bits 7-3 = volume
  1223.  32h    Voice Left        bits 7-3 = volume
  1224.  33h    Voice Right        bits 7-3 = volume
  1225.  34h    MIDI Left        bits 7-3 = volume
  1226.  35h    MIDI Right        bits 7-3 = volume
  1227.  36h    CD Left            bits 7-3 = volume
  1228.  37h    CD Right        bits 7-3 = volume
  1229.  38h    LineIn Left        bits 7-3 = volume
  1230.  39h    LineIn Right        bits 7-3 = volume
  1231.  3Ah    Microphone        bits 7-3 = gain
  1232.  3Bh    PC speaker        bits 7-3 = volume
  1233.  3Ch    Sound Output        highest set bit is enabled source (see #P0544)
  1234.  3Dh    Sound Source (left)    highest set bit is enabled source (see #P0544)
  1235.  3Eh    Sound Source (right)    highest set bit is enabled source (see #P0544)
  1236.  40h    In gain            bits 7-6 = gain
  1237.                    (00 = x1, 01 = x2, 10 = x4, 11 = x8)
  1238.  41h    Out gain (left)        bits 7-6 = gain (as for In)
  1239.  42h    Out gain (right)    bits 7-6 = gain (as for In)
  1240.  43h    Automatic Gain Control    bit 0 = enable
  1241.  44h    Treble (left)        bits 7-3 = volume
  1242.  45h    Treble (right)        bits 7-3 = volume
  1243.  46h    Bass (left)        bits 7-3 = volume
  1244.  47h    Bass (right)        bits 7-3 = volume
  1245.  
  1246. Bitfields for SB Mixer sound source:
  1247. Bit(s)    Description    (Table P0544)
  1248.  7    PC speaker???
  1249.  6    MIDI left
  1250.  5    MIDI right
  1251.  4    LineIn left
  1252.  3    LineIn right
  1253.  2    CD left
  1254.  1    CD right
  1255.  0    microphone        
  1256. Note:    bits 7-5 are ignored for Sound Output register
  1257. SeeAlso: #P0543
  1258. ----------P022B------------------------------
  1259. PORT 022B - GI1904 Scanner Interface Adapter
  1260. Range:    PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh, PORT 036Bh
  1261. Range:    PORT 03ABh, PORT 03EBh
  1262. ----------P022C------------------------------
  1263. PORT 022C - GS-IF Scanner Interface adapter
  1264. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  1265.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  1266. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  1267.       others use this interface
  1268. ----------P022F------------------------------
  1269. PORT 022F - mc-soundmachine, mc 03-04/1992 - SPEECH I/O
  1270. Note:    An Adlib-compatible Covox 'voice master' & 'speech thing' compatible
  1271.       soundcard
  1272. SeeAlso: PORT 0378h"Covox",PORT 0388h-038Fh"soundmachine"
  1273.  
  1274. 022F  RW  Covox compatible speech I/O  (via internal A/D converter,
  1275.         each read access starts a new conversion cycle)
  1276.         register enabled if bit7=1 in PORT 038Fh
  1277. ----------P02300233--------------------------
  1278. PORT 0230-0233 - Adaptec 154xB/154xC SCSI adapter.
  1279. Range:    four ports at any of 0130, 0134, 0230, 0234, 0330 (default) or 0334
  1280. ----------P02340237--------------------------
  1281. PORT 0234-0237 - Adaptec 154xB/154xC SCSI adapter.
  1282. Range:    four ports at any of 0130, 0134, 0230, 0234, 0330 (default) or 0334
  1283. ----------P0238023F--------------------------
  1284. PORT 0238-023F - COM port addresses on UniRAM card by German magazine c't
  1285.         selectable from 238, 2E8, 2F8, 338, 3E0, 3E8, 3F8
  1286. ----------P0238023B--------------------------
  1287. PORT 0238-023B - Bus Mouse Port (secondary address)
  1288. InstallCheck: read the ID Port twice; if installed, the first byte
  1289.       returned will be DEh, and the second will vary by card
  1290.       (revision number???)
  1291. Note:    secondary address for bus mice from MS and Logitech, and the ATI
  1292.       video adapter mouse
  1293. SeeAlso: PORT 023Ch"Mouse"
  1294.  
  1295. 0238  ?W  Command port
  1296. 0239  ?W  Data port
  1297. 023A  R?  ID Port 
  1298. ----------P023C023F--------------------------
  1299. PORT 023C-023F - Bus Mouse Port (primary address)
  1300. InstallCheck: read the ID Port twice; if installed, the first byte
  1301.       returned will be DEh, and the second will vary by card
  1302.       (revision number???)
  1303. Note:    primary address for bus mice from MS and Logitech, the ATI video
  1304.       adapter mouse, and the Commodore PC30III bus mouse
  1305. SeeAlso: PORT 0238h"Mouse"
  1306.  
  1307. 023C  ?W  Command port
  1308. 023D  ?W  Data port
  1309. 023E  R?  ID Port 
  1310. ----------P0240024F--------------------------
  1311. PORT 0240-024F - Gravis Ultra Sound by Advanced Gravis
  1312. Range:    The I/O address range is dipswitch selectable from:
  1313.        0200-020F and 0300-030F
  1314.        0210-021F and 0310-031F
  1315.        0220-022F and 0320-032F
  1316.        0230-023F and 0330-033F
  1317.        0240-024F and 0340-034F
  1318.        0250-025F and 0350-035F
  1319.        0260-026F and 0360-036F
  1320.        0270-027F and 0370-037F
  1321. SeeAlso: PORT 0340h-034Fh,PORT 0746h
  1322.  
  1323. 0240  -W  Mix Control register (see #P0545)
  1324. 0241  R-  Read Data
  1325. 0241  -W  Trigger Timer
  1326. 0246  R-  IRQ Status Register (see #P0546)
  1327. 0248  RW  Timer Control Reg
  1328.       Same as ADLIB Board (see PORT 0200h)
  1329. 0249  -W  Timer Data (see #P0547)
  1330. 024B  -W  IRQ Control Register (0240 bit 6 = 1) (see #P0548)
  1331. 024B  -W  DMA Control Register (0240 bit 6 = 0) (see #P0549)
  1332. 024F  RW  Register Controls (rev 3.4+)
  1333.  
  1334. Bitfields for Gravis Ultra Sound mix control register:
  1335. Bit(s)    Description    (Table P0545)
  1336.  6       Control Register Select (see 024B)
  1337.  5       Enable MIDI Loopback
  1338.  4       Combine GF1 IRQ with MIDI IRQ
  1339.  3       Enable Latches
  1340.  2       Enable MIC IN
  1341.  1       Disable LINE OUT
  1342.  0       Disable LINE IN
  1343. SeeAlso: #P0546
  1344.  
  1345. Bitfields for Gravis Ultra Sound IRQ status register:
  1346. Bit(s)    Description    (Table P0546)
  1347.  7       DMA TC IRQ
  1348.  6       Volume Ramp IRQ
  1349.  5       WaveTable IRQ
  1350.  3       Timer 2 IRQ
  1351.  2       Timer 1 IRQ
  1352.  1       MIDI Receive IRQ
  1353.  0       MIDI Transmit IRQ
  1354. SeeAlso: #P0545,#P0548,#P0549
  1355.  
  1356. Bitfields for Gravis Ultra Sound timer data:
  1357. Bit(s)    Description    (Table P0547)
  1358.  7       Reset Timr IRQ
  1359.  6       Mask Timer 1
  1360.  5       Mask Timer 2
  1361.  1       Timer 2 Start
  1362.  0       Timer 1 Start
  1363. SeeAlso: #P0546,#P0548
  1364.  
  1365. Bitfields for Gravis Ultra Sound IRQ control register:
  1366. Bit(s)    Description    (Table P0548)
  1367.  6    Combine Both IRQ
  1368.  5-3    MIDI IRQ Selector
  1369.     000  No IRQ
  1370.     001  IRQ 2
  1371.     010  IRQ 5
  1372.     011  IRQ 3
  1373.     100  IRQ 7
  1374.     101  IRQ 11
  1375.     110  IRQ 12
  1376.     111  IRQ 15
  1377.  2-0    GF1 IRQ Selector
  1378.     000  No IRQ
  1379.     001  IRQ 2
  1380.     010  IRQ 5
  1381.     011  IRQ 3
  1382.     100  IRQ 7
  1383.     101  IRQ 11
  1384.     110  IRQ 12
  1385.     111  IRQ 15
  1386. SeeAlso: #P0546,#P0549
  1387.  
  1388. Bitfields for Gravis Ultra Sound DMA Control Register:
  1389. Bit(s)    Description    (Table P0549)
  1390.  6    Combine Both DMA
  1391.  5-3    DMA Select Register 2
  1392.     000  No DMA
  1393.     001  DMA 1
  1394.     010  DMA 3
  1395.     011  DMA 5
  1396.     100  DMA 6
  1397.     101  DMA 7
  1398.  2-0    DMA Select Register 1
  1399.     000  No DMA
  1400.     001  DMA 1
  1401.     010  DMA 3
  1402.     011  DMA 5
  1403.     100  DMA 6
  1404.     101  DMA 7
  1405. SeeAlso: #P0546,#P0548,#P0591
  1406. ----------P02400257--------------------------
  1407. PORT 0240-0257 - RTC (alternate Real Time Clock for XT)     (1st at 0340-0357)
  1408.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  1409. ----------P02580259--------------------------
  1410. PORT 0258-0259 - Intel 82C212B "Neat" chipset - EMS emulation control
  1411. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  1412. ----------P02580259--------------------------
  1413. PORT 0258-0259 - AT RAMBANK Memory Expansion Board - EXT MEMORY AND EMS-SUPPORT
  1414. Range:    base address may be set to 0218h, 0228h, 0238h, 0258h, 0268h, 0298h,
  1415.       or 02A8h
  1416. ----------P0258025F--------------------------
  1417. PORT 0258-025F - Intel Above Board
  1418. ----------P02600268--------------------------
  1419. PORT 0260-0268    -  LPT port address on the UniRAM card by German magazine c't
  1420.         selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  1421. ----------P02680269--------------------------
  1422. PORT 0268-0269 - Intel 82C212B "Neat" chipset - EMS emulation control
  1423. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  1424. ----------P026B------------------------------
  1425. PORT 026B - GI1904 Scanner Interface Adapter
  1426. Range:    PORT 022Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh, PORT 036Bh
  1427. Range:    PORT 03ABh, PORT 03EBh
  1428. ----------P026C------------------------------
  1429. PORT 026C - GS-IF Scanner Interface adapter
  1430. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  1431.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  1432. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  1433.       others use this interface
  1434. ----------P026E026F--------------------------
  1435. PORT 026E-026F - Dell Enhanced Parallel Port
  1436. SeeAlso: PORT 002Eh,PORT 015Ch,PORT 0398h
  1437.  
  1438. 026E  -W  index for data port
  1439. 026F  RW  EPP command data
  1440. ----------P026E026F--------------------------
  1441. PORT 026E-026F - Intel 82091AA Advanced Integrated Peripheral
  1442. Range:    PORT 0022h (X-Bus), PORT 0024h (X-Bus), PORT 026Eh (ISA), or
  1443.       PORT 0398h (ISA)
  1444. SeeAlso: PORT 0022h"82091AA",PORT 0024h"82091AA",PORT 0398h"82091AA"
  1445.  
  1446. 026E  ?W  configuration register index
  1447. 026F  RW  configuration register data
  1448. ----------P0278------------------------------
  1449. PORT 0278 - Covox 'Speech Thing' COMPATIBLES
  1450. SeeAlso: PORT 022Fh"Covox",PORT 0388h-038Fh"soundmachine"
  1451.  
  1452. 0278  -W  speech data output via printer data port
  1453.         (with mc-soundmachine, enabled if bit5=1 in 38F)
  1454. ----------P0278027A--------------------------
  1455. PORT 0278-027A - PARALLEL PRINTER PORT (usually LPT1, sometimes LPT2)
  1456. Range:    usually PORT 03BCh, PORT 0278h, or PORT 0378h
  1457. SeeAlso: PORT 0278h"EPP",MEM 0040h:0008h,INT 17/AH=00h
  1458.  
  1459. 0278  -W  data port
  1460. 0279  R-  status port (see #P0658 at PORT 03BCh)
  1461. 027A  RW  control port (see #P0659 at PORT 03BCh)
  1462. ----------P0278027F--------------------------
  1463. PORT 0278-027F - Intel 82360SL/82091AA - EPP-mode PARALLEL PORT
  1464. Range:    PORT 0278h or PORT 0378h
  1465. SeeAlso: PORT 0278h"LPT1",PORT 0678h"ECP"
  1466.  
  1467. 0278-027A    as for standard parallel port
  1468. 027B  RW  address strobe
  1469. 027C  RW  data strobe 0
  1470. 027D  RW  data strobe 1
  1471. 027E  RW  data strobe 2
  1472. 027F  RW  data strobe 3
  1473. ----------P0279------------------------------
  1474. PORT 0279 - Plug-and-Play - CONFIGURATION REGISTER
  1475. SeeAlso: PORT 0A79h
  1476.  
  1477. 0279  -W  index into Plug-and-Play register set for Read Data Port and
  1478.       Write Data Port I/O (see #P0550,#P0551)
  1479.  
  1480. (Table P0550)
  1481. Values for Plug-and-Play Card-Level Registers:
  1482.  00h    set Read Port address
  1483.     bits 9-2 of Read Data port address (bits 15-10 are always 0, bits 1-0
  1484.       are always 11); valid Read Port addresses are 0203h-03FFh
  1485.  01h    serial isolation
  1486.  02h    configuration control
  1487.  03h    Wake command
  1488.     (specifies which card is accessed through configuration registers)
  1489.  04h    resource data
  1490.  05h    status
  1491.  06h    Card Select Number (CSN)
  1492.  07h    logical device number
  1493.     (selects which logical device on card is accessed at locations 30h-FFh)
  1494.     (see #P0551)
  1495.  08h-1Fh reserved
  1496.  20h-2Fh vendor-specific
  1497. Note:    there is one set of these registers per installed card
  1498. SeeAlso: #P0551
  1499.  
  1500. (Table P0551)
  1501. Values for Plug-and-Play Logical Device Registers:
  1502.  30h    activate
  1503.     bit 0: device is active on ISA bus
  1504.     bits 7-1: reserved (0)
  1505.  31h    I/O range check
  1506.     bit 0: I/O Read Pattern select (if bit 1 set, then I/O reads return
  1507.         55h if this bit is set, AAh if this bit is clear)
  1508.     bit 1: I/O Range Check Enable: if set, all reads from device I/O
  1509.           registers return 55h or AAh, depending on bit 0
  1510.     bits 7-2: reserved (0)
  1511.  32h-37h reserved
  1512.  38h-3Fh vendor-specific
  1513.  40h-44h 24-bit ISA memory descriptor 0
  1514.  45h-47h reserved
  1515.  48h-4Ch 24-bit ISA memory descriptor 1
  1516.  4Dh-4Fh reserved
  1517.  50h-54h 24-bit ISA memory descriptor 2
  1518.  55h-57h reserved
  1519.  58h-5Ch 24-bit ISA memory descriptor 3
  1520.  5Dh-5Fh reserved
  1521.  60h-6Fh I/O configuration registers 0-7
  1522.  70h-71h IRQ channel select 0
  1523.  72h-73h IRQ channel select 1
  1524.  74h-75h DMA configuration registers 0-1
  1525.  76h-7Eh 32-bit memory range configuration register 0
  1526.  7Fh     reserved
  1527.  80h-88h 32-bit memory range configuration register 1
  1528.  89h-8Fh reserved
  1529.  90h-98h 32-bit memory range configuration register 2
  1530.  99h-9Fh reserved
  1531.  A0h-A8h 32-bit memory range configuration register 3
  1532.  A9h-EFh reserved for logical device configuration
  1533.  F0h-FEh vendor-specific
  1534.  FFh    reserved
  1535. Note:    there is one set of these registers per logical device
  1536. SeeAlso: #P0550
  1537. ----------P0280------------------------------
  1538. PORT 0280 - LCD display on Wyse 2108 PC
  1539. ----------P02800288--------------------------
  1540. PORT 0280-0288    - non-standard COM port addresses (V20-XT by German magazine c't)
  1541.         selectable from 0280, 0288, 0290, 0298, 6A0, 6A8
  1542. --------s-P02800283--------------------------
  1543. PORT 0280-0283 - Pro Audio Spectrum 16 (PAS16)
  1544. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  1545.       PORT 0388h (default), or PORT 038Ch
  1546. ----------P0288028F--------------------------
  1547. PORT 0288-028F    - non-standard COM port addresses (V20-XT by German magazine c't)
  1548. 0280-0288    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  1549. 0290-0298
  1550. 0298-029F
  1551. --------s-P02840287--------------------------
  1552. PORT 0284-0287 - Pro Audio Spectrum 16 (PAS16)
  1553. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  1554.       PORT 0388h (default), or PORT 038Ch
  1555. --------s-P0288028F--------------------------
  1556. PORT 0288-028F - Pro Audio Spectrum 16 (PAS16)
  1557. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  1558.       PORT 0388h (default), or PORT 038Ch
  1559. --------s-P028C028F--------------------------
  1560. PORT 028C-028F - Pro Audio Spectrum 16 (PAS16)
  1561. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  1562.       PORT 0388h (default), or PORT 038Ch
  1563. ----------P02A002A7--------------------------
  1564. PORT 02A0-02A7 - Sunshine EW-901BN, EW-904BN
  1565.         EPROM writer card (release 1986) for EPROMs up to 27512
  1566. 02A0-02A3    adresses of the 8255 on the EW-90xBN
  1567. ----------P02A202A3--------------------------
  1568. PORT 02A2-02A3 - MSM58321RS clock
  1569. ----------P02A802A9--------------------------
  1570. PORT 02A8-02A9 - Intel 82C212B "Neat" chipset - EMS emulation control
  1571. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  1572. ----------P02AB------------------------------
  1573. PORT 02AB - GI1904 Scanner Interface Adapter (default)
  1574. Range:    PORT 022Bh, PORT 026Bh, PORT 02EBh, PORT 032Bh, PORT 036Bh
  1575. Range:    PORT 03ABh, PORT 03EBh
  1576. Note:    the GI1904 is used by many SPI 400/800dpi gray/halftone/color handy
  1577.       scanners by Marstek, Mustek, Conrad, Völkner and others
  1578. ----------P02AC------------------------------
  1579. PORT 02AC - GS-IF Scanner Interface adapter
  1580. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  1581.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  1582. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  1583.       others use this interface
  1584. ----------P02B002BF--------------------------
  1585. PORT 02B0-02BF - Trantor SCSI adapter
  1586. ----------P02B002DF--------------------------
  1587. PORT 02B0-02DF - alternate EGA,    primary EGA at 03C0
  1588. ----------P02B802B9--------------------------
  1589. PORT 02B8-02B9 - Intel 82C212B "Neat" chipset - EMS emulation control
  1590. Range: base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  1591. ----------P02C002Cx--------------------------
  1592. PORT 02C0-02Cx - AST-clock
  1593. ----------P02C002DF--------------------------
  1594. PORT 02C0-02DF - XT-Real Time Clock 2 (default jumpered address)
  1595. ----------P02C002CF--------------------------
  1596. PORT 02C0-02CF - EGA (2nd adapter)
  1597. SeeAlso: PORT 03C0h
  1598. --------V-P02C602C9--------------------------
  1599. PORT 02C6-02C9 - VGA/MCGA - DAC REGISTERS (alternate address)
  1600. Range:    PORT 03C6h or PORT 02C6h (alternate)
  1601. SeeAlso: PORT 03C6h
  1602. ----------P02D002DA--------------------------
  1603. PORT 02D0-02DA - C&T 82C570 CHIPSlink '3270' Protocol Controller
  1604. !!!chips\82c570.pdf p.12
  1605. ----------P02E002E8--------------------------
  1606. PORT 02E0-02E8 - LPT port address on the UniRAM card by German magazine c't
  1607. Range:    base address selectable from 0260, 02E0, 02E8, 02F0, 03E0, and 03E8.
  1608. ----------P02E002EF--------------------------
  1609. PORT 02E0-02EF - GPIB (General Purpose Interface Bus, IEEE 488 interface)
  1610.         (GAB 0 on XT)
  1611. 02E1  ??  GPIB (adapter 0)
  1612. 02E2
  1613. 02E3
  1614. ----------P02E002EF--------------------------
  1615. PORT 02E0-02EF - data aquisition     (AT)
  1616.  
  1617. 02E2  ??  data aquisition (adapter 0)
  1618. 02E3  ??  data aquisition (adapter 0)
  1619. ----------P02E8------------------------------
  1620. PORT 02E8 - S3 86C928 video controller (ELSA Winner 1000)
  1621. ----------P02E802E9--------------------------
  1622. PORT 02E8-02E9 - Intel 82C212B "Neat" chipset - EMS emulation control
  1623. Range:    base address may be set to 0208, 0218, 0258, 0268, 02A8, 02B8, or 02E8
  1624. ----------P02E802EF--------------------------
  1625. PORT 02E8-02EF - serial port, same as 02F8, 03E8 and 03F8 (COM4)
  1626. ----------P02E802EF--------------------------
  1627. PORT 02E8-02EF - 8514/A and compatible (e.g. ATI Graphics Ultra)
  1628.  
  1629. 02E8  R-  display status
  1630. 02E8  -W  horizontal total
  1631. 02EA  RW  Lookup: DAC mask
  1632. 02EB  -W  Lookup: DAC read index
  1633. 02EC  -W  Lookup: DAC write index
  1634. 02ED  RW  Lookup: DAC data
  1635. ----------P02EA------------------------------
  1636. PORT 02EA - S3 86C928 video controller (ELSA Winner 1000)
  1637. ----------P02EB------------------------------
  1638. PORT 02EB - GI1904 Scanner Interface Adapter
  1639. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 032Bh, PORT 036Bh,
  1640.       PORT 03ABh, PORT 03EBh
  1641. ----------P02EC------------------------------
  1642. PORT 02EC - GS-IF Scanner Interface adapter
  1643. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  1644.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  1645. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  1646.       others use this interface
  1647. ----------P02F002F8--------------------------
  1648. PORT 02F0-02F8 - LPT port address on the UniRAM card by German magazine c't
  1649.         selectable from 260, 2E0, 2E8, 2F0, 3E0, 3E8.
  1650. ----------P02F802FF--------------------------
  1651. PORT 02F8-02FF - serial port, same as 02E8, 03E8 and 03F8 (COM2)
  1652.  
  1653. 02F8  -W  transmitter holding register
  1654. 02F8  R-  receiver buffer register
  1655. 02F8  RW  divisor latch, low byte    when DLAB=1
  1656. 02F9  RW  divisor latch, high byte    when DLAB=1
  1657. 02F9  RW  interrupt enable register when DLAB=0
  1658. 02FA  R-  interrupt identification register
  1659. 02FB  RW  line control register
  1660. 02FC  RW  modem control register
  1661. 02FD  R-  line status register
  1662. 02FF  RW  scratch register
  1663. ----------P0300------------------------------
  1664. PORT 0300 - Award POST Diagnostic
  1665. SeeAlso: PORT 0080h
  1666. --------d-P0300------------------------------
  1667. PORT 0300 - Digidesign 'Session 8' HARD-DISK RECORDING SYSTEM
  1668. SeeAlso: PORT 0200h"Digidesign"
  1669. --------s-P03000301--------------------------
  1670. PORT 0300-0301 - MPU-401 MIDI UART
  1671. Range:    alternate address at PORT 0330h, occasionally at PORT 0310h or
  1672.       PORT 0320h
  1673. ----------P03000301--------------------------
  1674. PORT 0300-0301 - Soundblaster 16 ASP MPU-Midi EMULATION
  1675. ----------P0300????--------------------------
  1676. PORT 0300-???? - HP IEC/HP-IB adapter (e.g. for use with tape streamer HP9142)
  1677. ----------P03000303--------------------------
  1678. PORT 0300-0303 - Panasonic 52x CD-ROM SCSI Miniport
  1679. Range:    PORT 0300h-0303h,PORT 0320h-0323h,PORT 0340h-0343h,PORT 0360h-0363h,
  1680.       and PORT 0380h-0383h
  1681. ----------P0300030F--------------------------
  1682. PORT 0300-030F - Philips CD-ROM player CM50
  1683. ----------P0300030F--------------------------
  1684. PORT 0300-030F - CompaQ Tape drive adapter. alternate address at 0100
  1685. --------N-P0300031F--------------------------
  1686. PORT 0300-031F - 3com Ethernet adapters (default address)
  1687. --------N-P0300031F--------------------------
  1688. PORT 0300-031F - NE2000 compatible Ethernet adapters
  1689. Range:    may be placed at 0300h, 0320h, 0340h, or 0360h
  1690. SeeAlso: PORT 0300h"PCnet"
  1691. --------N-P0300031F--------------------------
  1692. PORT 0300-031F - AMD PCnet - NE2100-compatible Ethernet adapters
  1693. Range:    may be placed at 0300h, 0320h, 0340h, or 0360h, with the card's ROM
  1694.       appearing at segment C800h, CC00h, D000h, or D400h, respectively
  1695. Note:    for the PCnet-FAST chip, the I/O address may be read from the PCI
  1696.       configuration space at offset 10h (see #00878 at INT 1A/AX=B10Ah)
  1697. SeeAlso: PORT 0300h"NE2000",#00878
  1698.  
  1699. 0300-030F  R-  address PROM (used to store Ethernet address, etc.)
  1700. 0310w RW  Register Data Port (RDP) (see #P0552,#P0553)
  1701. 0312w ?W  Register Access Port (RAP) (selects register index for RDP and IDP)
  1702.       (see #P0570)
  1703. 0314w ?W  Reset
  1704. 0316w RW  ISA Bus Data Port (IDP)
  1705. 0318w      reserved for vendor-specific use
  1706. 031A-031F      reserved
  1707.  
  1708. (Table P0552)
  1709. Values for AMD PCnet-ISA Register Data Port index:
  1710.  00h    "CSR0" status and control flags (see #P0554)
  1711.  01h    "CSR1" low half of IADR (appears at PORT 0316h)
  1712.  02h    "CSR2" high half of IADR (appears at PORT 0317h)
  1713.  03h    "CSR3" interrupt masks (see #P0555)
  1714.  04h    "CSR4" interrupt masks and status bits (see #P0556)
  1715.  08h-0Bh logical address filter
  1716.  0Ch-0Eh physical address register
  1717.  0Fh    "CSR15" mode (see #P0560)
  1718.  4Ch    "CSR76" receive descriptor ring length
  1719.  4Eh    "CSR78" transmit descriptor ring length
  1720.  50h    "CSR80" FIFO threshold / DMA burst control (see #P0564)
  1721.  52h    "CSR82" DMA bus timer
  1722.  58h    "CSR88" chip ID
  1723.  70h    "CSR112" number of missed packets
  1724.  72h    "CSR114" number of receive collisions
  1725.  7Ch    "CSR124" BMU test register
  1726.         bit 4: accept runt packets
  1727. SeeAlso: #P0570,#P0553
  1728.  
  1729. (Table P0553)
  1730. Values for AMD PCnet-SCSI/PCnet-FAST Register Data Port index:
  1731.  00h    "CSR0" status and control flags (see #P0554)
  1732.  01h    "CSR1" low half of IADR (appears at PORT 0316h)
  1733.  02h    "CSR2" high half of IADR (appears at PORT 0317h)
  1734.  03h    "CSR3" interrupt masks (see #P0555)
  1735.  04h    "CSR4" interrupt masks and status bits (see #P0556)
  1736.  05h    "CSR5" (PCnet-FAST) extended control and interrupt 1 (see #P0557)
  1737.  06h    "CSR6" receive/transmit descriptor table lengths (see #P0558)
  1738.  07h    "CSR7" (PCnet-FAST) extended control and interrupt 2 (see #P0559)
  1739.  08h-0Bh logical address filter
  1740.  0Ch-0Eh physical address register
  1741.  0Fh    "CSR15" mode (see #P0560)
  1742.  10h    "CSR16"    alias of CSR1
  1743.  11h    "CSR17"    alias of CSR2
  1744.  12h    "CSR18" low half of current receive buffer address
  1745.  13h    "CSR19" high half of current receive buffer address
  1746.  14h    "CSR20" low half of current transmit buffer address
  1747.  15h    "CSR21" high half of current transmit buffer address
  1748.  16h    "CSR22" low half of next receive buffer address
  1749.  17h    "CSR23" high half of next receive buffer address
  1750.  18h    "CSR24" low half of receive-ring base address
  1751.  19h    "CSR25" high half of receive-ring base address
  1752.  1Ah    "CSR26" low half of next receive descriptor address
  1753.  1Bh    "CSR27" high half of next receive descriptor address
  1754.  1Ch    "CSR28" low half of current receive descriptor address
  1755.  1Dh    "CSR29" high half of current receive descriptor address
  1756.  1Eh    "CSR30" low half of transmit ring base address
  1757.  1Fh    "CSR31" high half of transmit ring base address
  1758.  20h    "CSR32" low half of next transmit descriptor address
  1759.  21h    "CSR33" high half of next transmit descriptor address
  1760.  22h    "CSR34" low half of current transmit descriptor address
  1761.  23h    "CSR35" high half of current transmit descriptor address
  1762.  24h    "CSR36" low half of next next receive descriptor address
  1763.  25h    "CSR37" high half of next next receive descriptor address
  1764.  26h    "CSR38" low half of next next transmit descriptor address
  1765.  27h    "CSR39" high half of next next transmit descriptor address
  1766.  28h    "CSR40" current receive byte count (see #P0561)
  1767.  29h    "CSR41" current receive status
  1768.  2Ah    "CSR42" current transmit byte count (see #P0562)
  1769.  2Bh    "CSR43" current transmit status
  1770.  2Ch    "CSR44" next receive byte count (bits 11-0; bits 15-12=0)
  1771.  2Dh    "CSR45" next receive status
  1772.  2Eh    "CSR46" transmit poll time counter
  1773.  2Fh    "CSR47" transmit polling interval
  1774.  30h    "CSR48" receive poll time counter
  1775.  31h    "CSR49" receive polling interval
  1776.  32h-39h reserved
  1777.  3Ah    "CSR58" software style (see #P0563)
  1778.  3Bh    reserved
  1779.  3Ch    "CSR60" previous transmit descriptor address (low)
  1780.  3Dh    "CSR61" previous transmit descriptor address (high)
  1781.  3Eh    "CSR62" previous transmit byte count (bits 11-0; bits 15-12=0)
  1782.  3Fh    "CSR63" previous transmit status
  1783.  40h    "CSR64" next transmit buffer address (low)
  1784.  41h    "CSR65" next transmit buffer address (high)
  1785.  42h    "CSR66" next transmit byte count (bits 11-0; bits 15-12=0)
  1786.  43h    "CSR67" next transmit status
  1787.  44h-47h reserved
  1788.  48h    "CSR72" receive ring counter
  1789.  49h    reserved
  1790.  4Ah    "CSR74" transmit ring counter
  1791.  4Bh    reserved
  1792.  4Ch    "CSR76" receive descriptor ring length
  1793.  4Dh    reserved
  1794.  4Eh    "CSR78" transmit descriptor ring length
  1795.  4Fh    reserved
  1796.  50h    "CSR80" FIFO threshold / DMA burst control (see #P0564)
  1797.  51h    reserved
  1798.  52h    "CSR82" (PCnet-SCSI) DMA bus timer
  1799.         (PCnet-FAST) transmit descriptor address (low)
  1800.  53h    reserved
  1801.  54h    "CSR84" DMA address register (low)
  1802.  55h    "CSR85" DMA address register (high)
  1803.  56h    "CSR86" buffer byte counter (bits 11-0; bits 15-12=0)
  1804.  57h    reserved
  1805.  58h    "CSR88" chip ID (low 16 bits) (see #P0565)
  1806.  59h    "CSR89" chip ID (high 16 bits) (see #P0565)
  1807.  5Ah    "CSR90" (PCnet-SCSI)
  1808.  5Bh    reserved
  1809.  5Ch    "CSR92" ring length conversion
  1810.  5Dh    reserved
  1811.  5Eh    "CSR94" (PCnet-SCSI)
  1812.  5Fh-63h reserved
  1813.  64h    "CSR100" bus timeout
  1814.  65h-6Fh reserved
  1815.  70h    "CSR112" number of missed packets
  1816.  71h    reserved
  1817.  72h    "CSR114" number of receive collisions
  1818.  73h-79h reserved
  1819.  7Ah    "CSR122" advanced feature control (see #P0566)
  1820.  7Bh    reserved
  1821.  7Ch    "CSR124" BMU test register (see #P0567)
  1822.  7Dh    "CSR125" (PCnet-FAST) MAC Enhanced Configuration Control (see #P0568)
  1823.  7Eh-7Fh reserved
  1824. SeeAlso: #P0552,#P0594
  1825.  
  1826. Bitfields for AMD PCnet CSR0 status and control flags:
  1827. Bit(s)    Description    (Table P0554)
  1828.  15    "ERR"    error; set if BABL, CERR, MISS, or MESS set
  1829.  14    "BABL"    network babbling control
  1830.  13    "CERR"    collision error
  1831.  12    "MISS"    missed frame
  1832.  11    "MERR"    memory error
  1833.  10    "RINT"    receive interrupt
  1834.  9    "TINT"    transmit interrupt
  1835.  8    "IDON"    initialization done
  1836.  7    "INTR"    interrupt flag
  1837.  6    "IENA"    interrupt enable
  1838.  5    "RXON"    recieve ON
  1839.  4    "TXON"    transmit ON
  1840.  3    "TDMD"    transmit demand
  1841.  2    "STOP"    stop -- disable all external activity
  1842.  1    "STRT"    start -- enable extrnal activity
  1843.  0    "INIT"    begin initialization procedure
  1844. SeeAlso: #P0552,#P0555
  1845.  
  1846. Bitfields for AMD PCnet CSR3 interrupt masks:
  1847. Bit(s)    Description    (Table P0555)
  1848.  15    reserved
  1849.  14    "BABLM"    disable babble interrupt
  1850.  13    reserved
  1851.  12    "MISSM" disable missed-frame interrupt
  1852.  11    "MERM"    disable memory-error interrupt
  1853.  10    "RINTM"    disable receive interrupt
  1854.  9    "TINTM" disable transmit interrupt
  1855.  8    "IDONM" disable initialization-done interrupt
  1856.  7-5    reserved
  1857.  4    "DXMT2PD" disable Transmit Two Part Deferral
  1858.  3    "EMBA"    enable modified back-off algorithm
  1859.  2-0    reserved
  1860. Note:    other bits are reserved
  1861. SeeAlso: #P0552,#P0554,#P0556
  1862.  
  1863. Bitfields for AMD PCnet CSR4 interrupt masks and status bits:
  1864. Bit(s)    Description    (Table P0556)
  1865.  15    "ENTST"       enable Test Mode / CSR124 access
  1866.  14    "DMAPLUS"  disable CSR80 burst transaction counter
  1867.  13    "TIMER"       enable Bus Timer register
  1868.  12    "DPOLL"       disable transmit polling
  1869.  11    "APADXMT"  Auto-Pad Transmit
  1870.  10    "ASTRPRCV" enable automatic pad stripping
  1871.  9    "MFCO"       missed frame counter has overflowed
  1872.  8    "MFCOM"       disable interrupt on MFCO
  1873.  7    "UINTCMD"  (PCnet-FAST) user interrupt command
  1874.  6    "UINT"       (PCnet-FAST) user interrupt pending
  1875.             write 1 to clear
  1876.  5    "RCVCCO"   receive collision counter has overflowed
  1877.  4    "RCVCCOM"  disable interrupt on RCVCCO
  1878.  3    "TXSTRT"   Transmit Start
  1879.  2    "TXSTRTM"  disable interrupt on TXSTRT
  1880.  1    "JAB"       Jabber error
  1881.  0    "JABM"       disable interrupt on JAB
  1882. SeeAlso: #P0552,#P0555,#P0553
  1883.  
  1884. Bitfields for AMD PCnet-FAST CSR5 extended control and interrupt 1:
  1885. Bit(s)    Description    (Table P0557)
  1886.  31-16    reserved
  1887.  15    "TOKINTD"  disable Transmit OK interrupt
  1888.  14    "LTINTEN"  enable Last Transmit interrupt
  1889.  13-12    reserved
  1890.  11    "SINT"       System Interrupt (write 1 to clear)
  1891.  10    "SINTE"       enable System Interrupt
  1892.  9    "SLPINT"   Sleep Interrupt (write 1 to clear)
  1893.  8    "SLPINTE"  enable Sleep Interrupt
  1894.  7    "EXDINT"   Excessive Deferral Interrupt (write 1 to clear)
  1895.  6    "EXDINTE"  enable Excessive Deferral Interrupt
  1896.  5    "MPPLBA"   Magic Packet Physical Logical Broadcast Accept
  1897.  4    "MPINT"       Magic Packet Interrupt (write 1 to clear)
  1898.  3    "MPINTE"   enable Magic Packet Interrupt
  1899.  2    "MPEN"       enable Magic Packet mode
  1900.  1    "MPMODE"   Magic Packet mode active
  1901.  0    "SPND"       Suspend
  1902. SeeAlso: #P0553,#P0556,#P0559
  1903.  
  1904. Bitfields for AMD PCnet CSR6 Descriptor Table Length register:
  1905. Bit(s)    Description    (Table P0558)
  1906.  15-12    transmit encoded ring length
  1907.  11-8    receive encoded ring length
  1908.  7-0    reserved
  1909. SeeAlso: #P0553,#P0557
  1910.  
  1911. Bitfields for AMD PCnet CSR7 Extended Control and Interrupt 2:
  1912. Bit(s)    Description    (Table P0559)
  1913.  15    "FASTSPNDE"  enable Fast Suspend
  1914.  14    "RXFRTG"     Receive Frame Tag
  1915.  13    "RDMD"         Receive Demand
  1916.  12    "RXDPOL"     disable receive polling
  1917.  11    "STINT"         Software Timer Interrupt (write 1 to clear)
  1918.  10    "STINTE"     enable Software Timer Interrupt
  1919.  9    "MREINT"     MII Management Read Error Interrupt (write 1 to clear)
  1920.  8    "MREINTE"    enable MII Management Read Error Interrupt
  1921.  7    "MAPINT"     MII Management Auto-Poll Interrupt (write 1 to clear)
  1922.  6    "MAPINTE"    enable MII Management Auto-Poll Interrupt
  1923.  5    "MCCINT"     MII Management Command Complete Interrupt (write 1 to clr)
  1924.  4    "MCCINTE"    enable MII Management Command Complete Interrupt
  1925.  3    "MCCIINT"    MII Management Command Complete Internal Interrupt
  1926.             (write 1 to clear)
  1927.  2    "MCCIINTE"   enable MII Manamagement Command Complete Internal Int.
  1928.  1    "MIIPDTINT"  MII PHY Detect Transition Interrupt (write 1 to clear)
  1929.  0    "MIIPDTINTE" enable MII PHY Detect Transition Interrupt
  1930. SeeAlso: #P0553,#P0557
  1931.  
  1932. Bitfields for AMD PCnet CSR15 mode flags:
  1933. Bit(s)    Description    (Table P0560)
  1934.  15    "PROM"       promiscuous mode
  1935.  14    "DRCVBC"   disable Receive Broadcast
  1936.  13    "DRCVPA"   disable Receive Physical Address
  1937.  12    "DLNKTST"  disable Link Status
  1938.  11    "DAPC"       disable Automatic Polarity Correction
  1939.  10    "MENDECL"  MENDEC loopback mode
  1940.  9    "LRT/TSEL" Low Receive Threshold
  1941.  8-7    "PORTSEL"  Port Select
  1942.         00  AUI
  1943.         01  10Base-T
  1944.         10  GPSI
  1945.         11  reserved
  1946.  6    "INTL"       internal loopback
  1947.  5    "DRTY"       disable retry
  1948.  4    "FCOLL"       force collision
  1949.  3    "DXMTFCS"  disable Transmit CRC
  1950.  2    "LOOP"       enable Loopback
  1951.  1    "DTX"       disable transmitter
  1952.  0    "DRX"       disable receiver
  1953. SeeAlso: #P0552,#P0556,#P0564
  1954.  
  1955. Bitfields for AMD PCnet CSR40 Current Receive Byte Count register:
  1956. Bit(s)    Description    (Table P0561)
  1957.  15-12    reserved (0)
  1958.  11-0    current receive byte count (copy of BCNT field of current receive
  1959.       descriptor's RMD1)
  1960. SeeAlso: #P0553,#P0562
  1961.  
  1962. Bitfields for AMD PCnet CSR42 Current Transmit Byte Count register:
  1963. Bit(s)    Description    (Table P0562)
  1964.  15-12    reserved (0)
  1965.  11-0    current transmit byte count (copy of BCNT field of current receive
  1966.       descriptor's TMD1)
  1967. SeeAlso: #P0553,#P0561
  1968.  
  1969. Bitfields for AMD PCnet CSR58 Software Style register:
  1970. Bit(s)    Description    (Table P0563)
  1971.  15-11    reserved (undefined)
  1972.  10    "APERREN"    enabled advanced parity error handling
  1973.  9    "CSRPCNET"    PCnet-ISA compatibility (read-only)
  1974.  8    "SSIZE32"    32-bit software structures for data blocks
  1975.  7-0    "SWSTYLE"    software style
  1976.         00h LANCE/PCnet-ISA (16-bit software structures)
  1977.         01h reserved
  1978.         02h PCnet-PCI (32-bit software)
  1979.         03h PCnet-PCI (32-bit software)
  1980. SeeAlso: #P0553
  1981.  
  1982. Bitfields for AMD PCnet CSR80 FIFO threshold and DMA burst control:
  1983. Bit(s)    Description    (Table P0564)
  1984.  15-14    reserved
  1985.  13-12    receive FIFO high-water mark; request DMA when N byte available
  1986.     00 = 16 bytes
  1987.     01 = 32 bytes
  1988.     10 = 64 bytes
  1989.  11-10    transmit starting point; start transmission after N bytes written
  1990.     00 = 4 bytes
  1991.     01 = 16 bytes
  1992.     10 = 64 bytes
  1993.     11 = 112 bytes
  1994.  9-8    transmit FIFO low-water mark; start DMA when room for N bytes
  1995.     00 = 8 bytes
  1996.     01 = 16 bytes
  1997.     10 = 32 bytes
  1998.  7-0    DMA burst register
  1999. SeeAlso: #P0552,#P0560
  2000.  
  2001. Bitfields for AMD PCnet Chip ID register (read-only):
  2002. Bit(s)    Description    (Table P0565)
  2003.  31-28    hardware version
  2004.  27-12    part number
  2005.     2623h = Am79C971
  2006.  11-1    manufacturer ID (0001h = AMD)
  2007.  0    reserved (1)
  2008. SeeAlso: #P0553
  2009.  
  2010. Bitfields for AMD PCnet CSR122 Advanced Feature Control register:
  2011. Bit(s)    Description    (Table P0566)
  2012.  15-1    reserved
  2013.  0    "RCVALGN"    DWORD-align received packets
  2014. SeeAlso: #P0553,#P0567
  2015.  
  2016. Bitfields for AMD PCnet CSR124 Test Register 1:
  2017. Bit(s)    Description    (Table P0567)
  2018.  15-5    reserved
  2019.  4    (PCnet-SCSI) accept runt packets
  2020.  3    (PCnet-FAST) accept runt packets
  2021.  2-0    reserved
  2022. SeeAlso: #P0553,#P0566
  2023.  
  2024. Bitfields for AMD PCnet-FAST CSR125 MAC Enhanced Configuration Control reg:
  2025. Bit(s)    Description    (Table P0568)
  2026.  15-8    inter-packet gap (reducing from default 96 can disrupt network)
  2027.  7-0    inter-frame spacing, part 1
  2028. SeeAlso: #P0553
  2029.  
  2030. (Table P0569)
  2031. Values for AMD PCnet-ISA ISA Bus Configuration Register index:
  2032.  00h    "MSRDA" width of DMA read signal
  2033.  01h    "MSWRA" width of DMA write signal
  2034.  02h    "MC"    ISA bus configuration (see #P0572)
  2035.  05h    "LED1"    LED1 signal control (see #P0573)
  2036.  06h    "LED2"    LED2 signal control (see #P0573)
  2037.  07h    "LED3"    LED3 signal control (see #P0573)
  2038. SeeAlso: #P0552,#P0594,#P0570
  2039.  
  2040. (Table P0570)
  2041. Values for AMD PCnet-SCSI Bus Configuration Register index:
  2042.  00h    "MSRDA" width of DMA read signal (reserved)
  2043.  01h    "MSWRA" width of DMA write signal (reserved)
  2044.  02h    "MC"    miscellaneous configuration (see #P0572)
  2045.  03h    reserved
  2046.  04h    "LINKST" link status
  2047.  05h    "LED1"    LED1 signal control (see #P0573) -- receive status
  2048.  06h    "LED2"    LED2 signal control (see #P0573)
  2049.  07h    "LED3"    LED3 signal control (see #P0573) -- transmit status
  2050.  08h-0Fh reserved
  2051.  10h    "IOBASEL"
  2052.  11h    "IOBASEU"
  2053.  12h    "BSBC"    burst size and bus control
  2054.  13h    "EECAS" EEPROM Control and Status
  2055.  14h    "SWS"    software style
  2056.  15h    "INTCON" reserved
  2057. SeeAlso: #P0553,#P0569,#P0571
  2058.  
  2059. (Table P0571)
  2060. Values for AMD PCnet-FAST Bus Configuration Register index:
  2061.  00h    "MSRDA"        width of DMA read signal (reserved)
  2062.  01h    "MSWRA"        width of DMA write signal (reserved)
  2063.  02h    "MC"        miscellaneous configuration (see #P0572)
  2064.  03h    reserved    !!!p.154
  2065.  04h    "LED0"    LED0 status
  2066.  05h    "LED1"    LED1 signal control (see #P0573) -- receive status
  2067.  06h    "LED2"    LED2 signal control (see #P0573)
  2068.  07h    "LED3"    LED3 signal control (see #P0573) -- transmit status
  2069.  08h    reserved
  2070.  09h    "FDC"        full-duplex control
  2071.  0Ah-0Fh reserved
  2072.  10h    "IOBASEL"    I/O base select (lo) -- reserved
  2073.  11h    "IOBASEU"    I/O base select (hi) -- reserved
  2074.  12h    "BSBC"        burst size and bus control
  2075.  13h    "EECAS"        EEPROM Control and Status
  2076.  14h    "SWS"        software style
  2077.  15h    "INTCON"    reserved
  2078.  16h    "PCILAT"    PCI-bus latency
  2079.  17h    "PCISID"    PCI subsystem ID
  2080.  18h    "PCISVID"    PCI subsystem vendor ID
  2081.  19h    "SRAMSIZ"    SRAM size
  2082.  1Ah    "SRAMB"        SRAM boundary
  2083.  1Bh    "SRAMIC"    SRAM interface control
  2084.  1Ch    "EBADDRL"    expansion bus address (low)
  2085.  1Dh    "EBADDRU"    expansion bus address (high)
  2086.  1Eh    "EBD"        expansion bus data port
  2087.  1Fh    "STVAL"        software timer value
  2088.  20h    "MIICAS"    MII control and status
  2089.  21h    "MIIADDR"    MII address
  2090.  22h    "MIIMDR"    MII management data
  2091.  23h    "PCIVID"    PCI vendor ID
  2092. SeeAlso: #P0553,#P0569,#P0570
  2093.  
  2094. Bitfields for AMD PCnet ISA bus configuration:
  2095. Bit(s)    Description    (Table P0572)
  2096.  3    EADISEL
  2097.  2    AWAKE
  2098.  1    ASEL
  2099.  0    XMAUSEL
  2100. SeeAlso: #P0570,#P0573
  2101.  
  2102. Bitfields for AMD PCnet LEDn signal control:
  2103. Bit(s)    Description    (Table P0573)
  2104.  15    LEDOUT
  2105.  14-8    reserved
  2106.  7    PSE
  2107.  6-5    reserved
  2108.  4    XMTE
  2109.  3    RVPE
  2110.  2    RCVE
  2111.  1    JABE
  2112.  0    COLE
  2113. SeeAlso: #P0570
  2114. ----------P0300031F--------------------------
  2115. PORT 0300-031F - prototype cards
  2116.         Periscope hardware debugger
  2117. ----------P030C030F--------------------------
  2118. PORT 030C-030F - AIMS LAB PC Radio
  2119. Range:    configurable to PORT 020Ch or PORT 030Ch
  2120. Notes:    writing a value with bit 3 set to one of these ports turns on the
  2121.       radio; writing a value with bit 3 clear turns it off
  2122.     PORT 020Eh bits 1 indicates status of some kind
  2123. --------s-P03100311--------------------------
  2124. PORT 0310-0311 - MPU-401 MIDI UART
  2125. Range:    alternate address at PORT 0300h or PORT 0330h, occasionally at
  2126.       PORT 0320h
  2127. ----------P0310031F--------------------------
  2128. PORT 0310-031F - Philips CD-ROM player CM50
  2129. --------s-P03200321--------------------------
  2130. PORT 0320-0321 - MPU-401 MIDI UART
  2131. Range:    alternate address at PORT 0300h or PORT 0330h, occasionally at
  2132.       PORT 0310h
  2133. ----------P03200323--------------------------
  2134. PORT 0320-0323 - XT HDC 1   (Hard Disk Controller)
  2135. SeeAlso: PORT 01F0h-01F7h
  2136.  
  2137. 0320  RW  data register
  2138. 0321  -W  reset controller
  2139. 0321  R-  read controller hardware status (see #P0574)
  2140. 0322  R-  read DIPswitch setting on XT controller card
  2141. 0322  -W  generate controller-select pulse
  2142. 0323  -W  write pattern to DMA and INT mask register
  2143.  
  2144. Bitfields for XT hard disk controller hardware status:
  2145. Bit(s)    Description    (Table P0574)
  2146.  7-6    always 0
  2147.  5    logical unit number
  2148.  4-2    always 0
  2149.  1    error occurred
  2150.  0    always 0
  2151. ----------P03240327--------------------------
  2152. PORT 0324-0327 - XT HDC 2   (Hard Disk Controller)
  2153. ----------P0328032B--------------------------
  2154. PORT 0328-032B - XT HDC 3   (Hard Disk Controller)
  2155. ----------P032B------------------------------
  2156. PORT 032B - GI1904 Scanner Interface Adapter
  2157. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 036Bh,
  2158.       PORT 03ABh, PORT 03EBh
  2159. ----------P032C------------------------------
  2160. PORT 032C - GS-IF Scanner Interface adapter
  2161. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  2162.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  2163. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  2164.       others use this interface
  2165. ----------P032C032F--------------------------
  2166. PORT 032C-032F - XT HDC 4   (Hard Disk Controller)
  2167. ----------P032C032F--------------------------
  2168. PORT 032C-032F - AMD InterWave
  2169. ----------P03300331--------------------------
  2170. PORT 0330-0331 - MPU-401 MIDI UART
  2171. Range:    alternate address at PORT 0300h, occasionally at PORT 0310h or
  2172.       PORT 0320h
  2173.  
  2174. 0330  RW  data register
  2175. 0331  R-  status register (see #P0575)
  2176. 0331  -W  command register (see #P0576)
  2177. Note:    MPU-401 genarates an interrupt when MIDI code is ready; by reading
  2178.       MIDI code from the data register this interrupt is cleared
  2179.  
  2180. Bitfields for MPU-401 status register:
  2181. Bit(s)    Description    (Table P0575)
  2182.  7    input ready
  2183.     =1 no data is available for reading
  2184.     =0 data is available for reading
  2185.  6    output ready
  2186.     =1 not ready to receive command/data byte
  2187.     =0 ready to receive command/data byte
  2188.  5-0    reserved
  2189. Note:    pending input seems to block the output
  2190. SeeAlso: #P0576
  2191.  
  2192. (Table P0576)
  2193. Values for MPU-401 commands (data go to/from PORT 0330h):
  2194. Command    Description         Results  Parameter
  2195.  01h    send MIDI stop           ACK          -
  2196.  02h    send MIDI start           ACK          -
  2197.  03h    send MIDI continue       ACK          -
  2198.  15h    stop all (recording,       ACK          -
  2199.       playback and MIDI)
  2200.  34h    return timing bytes       ACK          -
  2201.       in stop mode
  2202.  35h    enable mode messages       ACK          -
  2203.       to PC
  2204.  38h    enable system common       ACK          -
  2205.       messages to PC
  2206.  39h    enable real time       ACK          -
  2207.       messages to PC
  2208.  3Ch    use CLS sync           ACK          -
  2209.  3Dh    use SMPTE sync           ACK          -
  2210.  3Fh    enter UART mode           ACK          -
  2211.  80h    use MIDI sync           ACK          -
  2212.  81h    use FSK sync           ACK          -
  2213.  82h    use MIDI sync           ACK          -
  2214.  83h    enable metronome       ACK          -
  2215.  84h    disable metronome       ACK          -
  2216.  87h    enable pitch and       ACK          -
  2217.       controller
  2218.  8Ah    disable data in stopped       ACK          -
  2219.       mode
  2220.  8Bh    enable data in stop mode   ACK          -
  2221.  8Ch    disable measure end       ACK          -
  2222.       messages to host
  2223.  91h    enable ext MIDI control       ACK          -
  2224.  94h    disable clock to host       ACK          -
  2225.  95h    enable clock to host       ACK          -
  2226.  97h    enable system exclusive       ACK          -
  2227.       messages to PC
  2228.  ACh    get MIDI version     ACK,VER      -
  2229.  ADh    get revision         ACK,REV      -
  2230.  Cxh    set timebase to x*24       ACK          -
  2231.       ppqn (x>1)
  2232.  D0h    ???               ACK          -
  2233.  DFh    ???               ACK          -
  2234.  E0h    set tempo           ACK         BPS
  2235.  E4h    set clocks per click       ACK         CPC
  2236.  E6h    set beats per measure       ACK         BPM
  2237.  E7h    send all clocks to host       ACK        1 byte
  2238.                       (04h is sent)
  2239.  FFh    reset               ACK          -
  2240. Notes:    after receiving a command byte MPU-401 must reply with command
  2241.       acknowledge byte FEh in data register
  2242.     command parameters are sent, and response bytes are received through
  2243.       the data register
  2244.     no commands (except reset) can be issued in UART mode, and MPU-401
  2245.       must be reset to leave UART mode
  2246.     Key:
  2247.         ACK    command acknowledge byte (FEh)
  2248.         VER    MIDI version number
  2249.             bits 7-4: major version
  2250.             bits 0-3: minor version
  2251.         REV    revision number
  2252.         BPS    beats per second (8..250)
  2253.         CPC    clocks per click
  2254.         BPM    beats per measure
  2255. SeeAlso: #P0576
  2256. ----------P03300333--------------------------
  2257. PORT 0330-0333 - Adaptec 154xB/154xC SCSI adapter (default address)
  2258. Range:    four ports at any of 0130, 0134, 0230, 0234, 0330 (default) or 0334
  2259. Notes:    Adaptec AHA-154x adapters use ISA bus-mastering mechanism, and so
  2260.       require the DMA channel to be programmed to the cascaded mode
  2261.     the original AHA-1540 only supported asynchronous SCSI data transfers,
  2262.       and did not support scatter/gather operation
  2263.     AHA-154xA+ supports the target mode implementing the SCSI-2 processor
  2264.       device model; it executes INQUIRY, TEST UNIT READY, and REQUEST SENSE
  2265.       commands received from the initiators without CPU intervention; the
  2266.       CPU is required to provide information only for the SEND/RECEIVE
  2267.       commands; other commands are treated by the host adapter as invalid
  2268.     AHA-154xCF supports Fast SCSI data transfer
  2269.     BusLogic BT-545S and DTC 3290 seem to be "almost" compatible with
  2270.       the Adaptec AHA-154x
  2271.  
  2272. 0330  R-  status register (see #P0577)
  2273. 0330  -W  control register (see #P0578)
  2274. 0331  R-  data in register
  2275. 0331  -W  command / data out register (see #P0580)
  2276. 0332  R-  interrupt status register (see #P0579)
  2277.  
  2278. Bitfields for AHA-154x status register:
  2279. Bit(s)    Description    (Table P0577)
  2280.  7    self-test in progress (STST)
  2281.  6    diagnostic failure (DIAGF)
  2282.  5    mailbox initialization required (INIT)
  2283.  4    adapter idle (IDLE)
  2284.  3    command register full (CDF)
  2285.  2    data register full (DF)
  2286.  1    reserved
  2287.  0    invalid command (INVDCMD)
  2288. Notes:    bit 0 is only valid from the time the host adapter command complete
  2289.       interrupt is set (bit 2 in the interrupt flag register) until it is
  2290.       reset
  2291.     the data in register should only be read if bit 2 is set; reading the
  2292.       data in register resets this bit
  2293.     command / data out register should only be written if bit 3 is zero;
  2294.       the host adapter usually clears this bit within 100 mcs after CPU
  2295.       writes to the command / data out register
  2296.     bit 4 indicates that the host adapter has no outstanding adapter or
  2297.       SCSI commands
  2298.     bit 5 indicates that the mailbox initialization command (01h) required
  2299.     bit 7 is asserted after a power-on or hard reset (bit 7 in the control
  2300.       register); when diagnostics is complete, this bit is reset and bit 5
  2301.       or bit 6 is set to indicate seccessful or unsuccessful completion;
  2302.       if the bit remain set, then initialization/diagnostic could not be
  2303.       completed
  2304.     if bit 6 is set indication failed diagnostics, only the hard reset
  2305.       (bit 7 in the control register) will clear it
  2306. SeeAlso: #P0578,#P0579,#P0580
  2307.  
  2308. Bitfields for AHA-154x control register:
  2309. Bit(s)    Description    (Table P0578)
  2310.  7    hardware reset (HRST)
  2311.  6    software reset (SRST)
  2312.  5    interrupt reset (IRST)
  2313.  4    SCSI bus reset (SCRST)
  2314.  0-3    reserved
  2315. Notes:    setting bit 4 causes the host adapter to assert the RST signal on the
  2316.       SCSI bus for 25 microseconds (reset hold time); the reset is
  2317.       managed as a SCSI soft reset, and will allow partially completed
  2318.       operations to continue; use bit 7 to force a SCSI hard reset
  2319.     setting bit 5 clears all bits in the interrupt flag register and resets
  2320.       the interrupt
  2321.     setting bit 6 clears all ongoing SCSI and host adapter commands
  2322.     setting bit 7 forces the host adapter into a state identical to a
  2323.       normal power on state: diagnostic functions are executed and all
  2324.       status for ongoing SCSI operations is lost, a reset condition is
  2325.       generated on the SCSI bus; while the reset is being processed, bit 7
  2326.       on the status register is set
  2327.     when soft/hard reset is complete, bits 4 and 5 of the status register
  2328.       are set
  2329. SeeAlso: #P0577
  2330.  
  2331. Bitfields for AHA-154x interrupt status register:
  2332. Bit(s)    Description    (Table P0579)
  2333.  7    any interrupt (ANYINTR)
  2334.  4-6    reserved
  2335.  3    SCSI reset detected (SCRD)
  2336.  2    host adapter command complete (HACC)
  2337.  1    mailbox out available (MBOA)
  2338.  0    mailbox in full (MBIF)
  2339. Notes:    bit 0 indicates that an entry has been placed by the host adapter in
  2340.       the mailbox in; this interrupt should be reset as soon as possible
  2341.     bit 1 indicates that an outbound mailbox entry is now available for use
  2342.     bit 2 indicates that an adapter command has been completed; bit 0 of
  2343.       the status register will indicate success or failure; during the
  2344.       parameter transfers to/from the host adapter, this bit should be
  2345.       examined to verify that the command has not been ended abnormally
  2346.     bit 3 indicates that a SCSI reset has been received on the SCSI bus;
  2347.       CPU can convert the SCSI soft reset to the SCSI hard reset by setting
  2348.       bit 6 of the control register upon the detection of the SCSI reset
  2349.       interrupt; it is not set for the CPU-initiated SCSI reset (via bit
  2350.       4 of the control register)
  2351.     if the host adapter command complete and SCSI reset detected interrupts
  2352.       are present, the mailbox in full and mailbox out available interrupts
  2353.       are not presented until the former are cleared
  2354.     if bit 7 of this register or bit 2 of the status register is set, host
  2355.       adapter command complete and SCSI reset detected interrupts will not
  2356.       be presented until the interrupts already present are cleared
  2357. SeeAlso: #P0577,#P0581
  2358.  
  2359. (Table P0580)
  2360. Values for AHA-154x host adapter commands:
  2361. Command    Description           Parameters        Results
  2362.  00h    no operation           -            -
  2363.  01h    mailbox initialization       MBC,MBA0..MBA2    -
  2364.  02h    start SCSI command       -            -
  2365.  03h    start PC/AT BIOS command   BFN,TRG,CH,CLHH,    -
  2366.                    HL,SN,SC,BA0..BA2
  2367.  04h    adapter inquiry           -            BID,SOID,FWR0,FWR1
  2368.  05h    enable mailbox out       E/D            -
  2369.       interrupt
  2370.  06h    set selection time-out       E/D,TO0,TO1        -
  2371.  07h    set bus on time           BON            -
  2372.  08h    set bus off time       BOFF            -
  2373.  09h    set AT bus transfer speed  ATBS            -
  2374.  0Ah    return installed devices   -            TC0..TC7
  2375.  0Bh    return configuration data  -            DAP,IC,SID
  2376.  0Ch    enable target mode       E/D,LUM        -
  2377.       (not AHA-1540/W1542A)
  2378.  0Dh    return setup data       DIL            SPS,ATBS,BON,BOFF,
  2379.                             MBC,MBA0..MBA2,
  2380.                             STA0..STA7,DS
  2381.  1Ah    write adapter channel 2       BA0..BA2        -
  2382.       buffer
  2383.  1Bh    read  adapter channel 2       BA0..BA2        -
  2384.       buffer
  2385.  1Ch    write adapter FIFO buffer  BA0..BA2        -
  2386.  1Dh    read  adapter FIFO buffer  BA0..BA2        -
  2387.  1Fh    echo command data       EV            EV
  2388.  20h    run adapter diagnostics       -            -
  2389.  21h    set adapter options       ESG,DS        -
  2390.  22h    program EEPROM           35 bytes        -
  2391.       (AHA-1542C)
  2392.  23h    return EEPROM data       ???,NED,EA        EEPROM data bytes
  2393.       (AHA-1542C)
  2394.  24h    set shadow RAM parameters  1 byte        -
  2395.       (AHA-1542C?)
  2396.  25h    BIOS mailbox initializa-   MBC,MBA0..MBA2    -
  2397.       tion (since AHA-1540B
  2398.       rev. 1.4?)
  2399.  26h    set BIOS bank 1           -            -
  2400.       (AHA-1542C?)
  2401.  27h    set BIOS bank 2           -            -
  2402.       (AHA-1542C?)
  2403.  28h    return extended BIOS       -            F,MBLT
  2404.       information (since
  2405.       AHA-1540B rev. 1.4?)
  2406.  29h    enable mailbox interface   MBU,MBLT        -
  2407.       (since AHA-1540B
  2408.       rev. 1.4?)
  2409.  41h    AMI inquiry (AMI-4448)       SL            C0..C3,M0..M5,
  2410.                             S0..S5,V0..V5
  2411.  82h    start BIOS SCSI command       -            -
  2412.       (since AHA-1540B
  2413.       rev. 1.4?)
  2414.  8Dh    exteded setup information  DIL?            ?
  2415.       (since AHA-1540B
  2416.       rev. 1.4?)
  2417. Note:    MBC       mailboxes count (>0)
  2418.     MBA0..MBA2 MSB..LSB of the physical address of the mailbox area
  2419.              (see #P0581)
  2420.     BFN       BIOS function number
  2421.     TRG       bits 7-5: target ID
  2422.            bits 4-0: reserved
  2423.     CH       bits 7-4: reserved
  2424.            bits 3-0: bits 9-6 of cylinder number
  2425.     CLHH       bits 7-2: bits 5-0 of cylinder number
  2426.            bits 1-0: bits 5-4 of head number
  2427.     HL       bits 7-4: reserved
  2428.            bits 3-0: bits 3-0 of head number
  2429.     SN       sector number - 1
  2430.     SC       sector count
  2431.     BA0..BA2   MSB..LSB of the physical address of the data buffer
  2432.     BID       board ID
  2433.            00h AHA-1540 (16-head BIOS)
  2434.            20h BusLogic BT-545S
  2435.            30h AHA-1540 (64-head BIOS)
  2436.            31h AHA-1540
  2437.            41h AHA-154xA/154xB (64-head BIOS)
  2438.            42h AHA-1640 (64-head BIOS)
  2439.            43h AHA-1542C
  2440.            44h AHA-1542CF
  2441.            45h AHA-1542CF (BIOS v2.01)
  2442.     SOID       special options ID
  2443.            30h ???
  2444.            41h standard model
  2445.     FWR0,FWR1  firmware revision (alphanumeric)
  2446.     E/D       enable/diable parameter
  2447.            00h disable
  2448.            01h enable
  2449.     TO0,TO1       MSB, LSB of the time-out value (in ms)
  2450.            default 250 ms
  2451.     BON       bus on time (in mcs)
  2452.            time the adapter stays on the AT bus when transferring data
  2453.              2..15 mcs, default 11 mcs
  2454.     BOFF       bus off time (in mcs)
  2455.            time the adapter stays off the AT bus when transferring data
  2456.              1..64 mcs, default 4 mcs
  2457.     ATBS       AT bus transfer speed
  2458.            00h,AAh 5.0    MB/s
  2459.            01h,99h 6.7    Mb/s
  2460.            02h       8.0    Mb/s
  2461.            03h,88h 10.0 Mb/s
  2462.            04h       5.7    Mb/s
  2463.            BBh       4.0    Mb/s?
  2464.            CCh       3.3    Mb/s?
  2465.            DDh       2.9    Mb/s?
  2466.            EEh       2.5    Mb/s?
  2467.            FFh       2.2    Mb/s?
  2468.     TC0..TC7   target 0..7 configuration
  2469.            bit M in byte N is set if SCSI ID N LUN M is installed
  2470.     DAO       DRQ arbitration priority
  2471.            bit 7: channel 7
  2472.            bit 6: channel 6
  2473.            bit 5: channel 5
  2474.            bits 4-1: reserved (0)
  2475.            bit 0: channel 0
  2476.     IRQ       interrupt channel
  2477.            bit 7: reserved (0)
  2478.            bit 6: IRQ15
  2479.            bit 5: IRQ14
  2480.            bit 4: reserved (0)
  2481.            bit 3: IRQ12
  2482.            bit 2: IRQ11
  2483.            bit 1: IRQ10
  2484.            bit 0: IRQ9
  2485.     SID       SCSI ID
  2486.            bits 7-3: reserved (0)
  2487.            bits 2-0: binary value of SCSI ID
  2488.     LUM       logical unit mask
  2489.            bit N is set if LUN N is to respond in target mode
  2490.     DIL       data in length
  2491.            number of bytes to return (0 means 256 bytes)
  2492.     SPS       SDT and parity status
  2493.            bits 7-2: reserved (0)
  2494.            bit 1: SCSI parity check enabled
  2495.            bit 0: synchronous negotiation initiated
  2496.     STA0..STA7 synchronous transfer agreements for target ID 0..7
  2497.            bit 7: synchronous transfer negotiated
  2498.            bits 6-4: value defining synchronous transfer period
  2499.                  period in ns can be calculated as 200+50*value
  2500.            bits 3-0: negotiated offset value
  2501.     DS       (AHA-154xB+?) disconnect status
  2502.            bit N is set if target ID N is unable to disconnect?
  2503.     EV       echo value (it is be echoed back)
  2504.     ESG       01h: enable scatter/gather
  2505.     NED       number of EEPROM data bytes to return
  2506.     EA       EEPROM address to read data from
  2507.     F       flags
  2508.            bit 3: extended BIOS translation (255 heads / 63 sectors)
  2509.     MBLT       mailbox lock type
  2510.            01h translation  lock (for extended BIOS)
  2511.            02h dynamic scan lock
  2512.     MBU       00h: mailbox unlock
  2513.     SL       string length
  2514.     C0..C3       ASCIZ company string ("AMI")
  2515.     M0..M5       ASCIZ model string
  2516.     S0..S5       ASCIZ series string ("48")
  2517.     V0..V5       ASCIZ version string ("1.00")
  2518. Notes:    all commands except 02h, 05h, 82h should only be issued if the host
  2519.       adapter is idle (bit 4 in the status register set)
  2520.     command 02h can be issued even if the command / data out register is
  2521.       full (bit 3 in the status register may be set)
  2522.     command 02h causes host adapter to scan both its SCSI and BIOS mailbox
  2523.       areas; command 82h causes host adapter to scan only BIOS mailbox area
  2524.     all commands except 02h and 05h cause host adapter command complete
  2525.       interrupt (bit 2 in the interrupt flag register) after completetion;
  2526.       command 05h will still generate the interrupt if its parameter was
  2527.       invalid
  2528.     return installed devices command (0Ah) results in the host adapter
  2529.       issuing the TEST UNIT READY command to each target/LUN combination
  2530.     return setup data command (0Dh) returns the number of bytes requested
  2531.       with DIL parameter
  2532.     BusLogic BT-545S gets the adapter inquiry command (04h) wrong returning
  2533.       only one byte instead of four; DTC 3290 gets this command wrong too
  2534.     AMI inquiry command (41h) returns the number of bytes requested
  2535.       with SL parameter
  2536. SeeAlso: #P0577,#P0579
  2537.  
  2538. Format of AHA-154x mailbox array:
  2539. Offset    Size    Description    (Table P0581)
  2540.  00h  N*4 BYTEs    array of N "out" mailboxes (MBO) (see #P0582)
  2541.  N*4  N*4 BYTEs    array of N "in" mailboxes (MBI) (see #P0584)
  2542. Notes:    the MBO entries are scanned by the host adapter in a round-robin
  2543.       fashion, i.e. the host adapter first looks into an MBO which follows
  2544.       the one least recently used (and wraps around if it was the last one)
  2545.     the MBI entries are filled in a round-robin fashion, so the CPU should
  2546.       check the next MBI entry after the last one that was found when a new
  2547.       mailbox in full (bit 0 in the interrupt flag register) interrupt; CPU
  2548.       should also check the next MBI entries to determine if more than one
  2549.       MBI is ready
  2550.     MBI entries are absent in case of BIOS mailboxes; in this case MBI
  2551.       status code is returned in the command linking ID field of the
  2552.       command control block (CCB)
  2553.     target mode CCB may be posted to the host adapter in anticipation of
  2554.       the SCSI command reception, with the direction bits indicating the
  2555.       expected transfer directiin (i.e. SEND or RECEIVE command); if a SCSI
  2556.       command is received by the host adapter before the CCB is prepared,
  2557.       it requests a CCB from the host through the MBI
  2558. SeeAlso: #P0577,#P0579,#P0583,#P0585,#P0587
  2559.  
  2560. Format of AHA-154x mailbox-out (MBO) entry:
  2561. Offset    Size    Description    (Table P0582)
  2562.  00h    BYTE    mailbox command/status code (see #P0583,#P0585)
  2563.  01h  3 BYTEs    address of the command control block (CCB) (see #P0586)
  2564.         physical address in big-endian format
  2565. SeeAlso: #P0577,#P0581,#P0584
  2566.  
  2567. (Table P0583)
  2568. Values for mailbox out command codes:
  2569.  00h    mailbox/CCB is free
  2570.  01h    start CCB
  2571.  02h    abort CCB
  2572. SeeAlso: #P0577,#P0581,#P0585
  2573.  
  2574. Format of mailbox-in (MBI) entry:
  2575. Offset    Size    Description    (Table P0584)
  2576.  00h    BYTE    MBI status code (see #0584)
  2577. ---MBI status code 10h---
  2578.  01h    BYTE    initiator and LUN
  2579.         bits 7-5: SCSI initiator ID
  2580.         bit 4: RECEIVE command received
  2581.         bit 3: SEND command received
  2582.         bits 2-0: LUN
  2583.  02h    WORD    data length
  2584.         2 high bytes of the data length in SCSI SEND/RECEIVE command
  2585.         in big-endian format
  2586. ---other MBI status codes---
  2587.  01h  3 BYTEs    CCB pointer
  2588.         physical address in big-endian format
  2589. SeeAlso: #P0582,#P0577,#P0581,#P0587
  2590.  
  2591. (Table P0585)
  2592. Values for mailbox in status codes:
  2593.  00h    command in progress
  2594.  01h    CCB completed
  2595.  02h    CCB aborted
  2596.  03h    CCB abort failed
  2597.  04h    CCB completed with error
  2598. SeeAlso: #P0584,#P0581,#P0583
  2599.  
  2600. Format of AHA-154x command control block (CCB):
  2601. Offset    Size    Description    (Table P0586)
  2602.  00h    BYTE    CCB operation code (see #P0587)
  2603. ---operation code 00h---
  2604.  01h    BYTE    address and control (see #P0601)
  2605.  02h    BYTE    SCSI command length
  2606.  03h    BYTE    request sense allocation length
  2607.         00h request 14 bytes of sense data
  2608.         01h disable auto-sense
  2609.         02h-07h reserved
  2610.         08h-FFh sense data length
  2611.  04h  3 BYTEs    data length
  2612.         in big-endian format
  2613.  07h  3 BYTEs    data pointer
  2614.         physical address in big-endian format
  2615.  0Ah  3 BYTEs    link pointer (link to the next CCB for the linked commands)
  2616.         physical address in big-endian format
  2617.  0Dh    BYTE    command linking ID (for the linked commands)
  2618.         (return) MBI status code if this CCB is in a BIOS mailbox
  2619.           (see #P0585)
  2620.  0Eh    BYTE    (return) host adapter status (HASTAT) (see #P0589)
  2621.  0Fh    BYTE    (return) target device status (TARSTAT)
  2622.         SCSI status byte
  2623.  10h  2 BYTEs    reserved
  2624.  12h  N BYTEs    SCSI command descriptor block (CDB)
  2625.  12h+N M BYTEs    allocated for sense data
  2626.         (return) sense data (if requested)
  2627. ---operation code 01h---
  2628.  01h    BYTE    address and control
  2629.         bits 7-5: initiator ID
  2630.         bits 4-3: transfer direction
  2631.               01 SEND command
  2632.               10 RECEIVE command
  2633.               00,11 illegal combination
  2634.         bits 2-0: LUN
  2635.  02h    BYTE    SCSI command length
  2636.  03h    BYTE    request sense allocation length
  2637.  04h  3 BYTEs    data length
  2638.  07h  3 BYTEs    data pointer
  2639.  0Ah  4 BYTEs    reserved
  2640.  0Eh    BYTE    (return) host adapter status (see #P0589)
  2641.  0Fh    BYTE    (return) target device status
  2642.  10h  2 BYTEs    reserved
  2643.  12h  N BYTEs    (return) SCSI CDB
  2644.  12h+N M BYTEs    allocated for sense data
  2645.         (return) sense data (to be sent to the initiator)
  2646. ---operation code 02h---
  2647.  01h    BYTE    address and control (see #P0601)
  2648.  02h    BYTE    SCSI command length
  2649.  03h    BYTE    request sense allocation length
  2650.  04h  3 BYTEs    data segment list length (in bytes)
  2651.         in big-endian format
  2652.  07h  3 BYTEs    data segment list pointer
  2653.         physical address in big-endian format
  2654.  0Ah  3 BYTEs    link pointer
  2655.  0Dh    BYTE    command linking ID
  2656.         (return) MBI status code if this CCB is in a BIOS mailbox
  2657.           (see #P0585)
  2658.  0Eh    BYTE    (return) host adapter status (see #P0589)
  2659.  0Fh    BYTE    (return) target device status
  2660.  10h  2 BYTEs    reserved
  2661.  12h  N BYTEs    SCSI CDB
  2662.  12h+N M BYTEs    allocated for sense data
  2663.         (return) sense data (if requested)
  2664. ---operation code 03h---
  2665.  01h    BYTE    address and control (see #P0601)
  2666.  02h    BYTE    SCSI command length
  2667.  03h    BYTE    request sense allocation length
  2668.  04h  3 BYTEs    data length
  2669.         (return) residual length
  2670.  07h  3 BYTEs    data pointer
  2671.  0Ah  3 BYTEs    link pointer
  2672.  0Dh    BYTE    command linking ID
  2673.         (return) MBI status code if this CCB is in a BIOS mailbox
  2674.           (see #P0585)
  2675.  0Eh    BYTE    (return) host adapter status (see #P0589)
  2676.  0Fh    BYTE    (return) target device status
  2677.  10h  2 BYTEs    reserved
  2678.  12h  N BYTEs    SCSI CDB
  2679.  12h+N M BYTEs    allocated for sense data
  2680.         (return) sense data (if requested)
  2681. ---operation code 04h---
  2682.  01h    BYTE    address and control (see #P0601)
  2683.  02h    BYTE    SCSI command length
  2684.  03h    BYTE    request sense allocation length
  2685.  04h  3 BYTEs    data segment list length (in bytes)
  2686.         (return) residual length
  2687.  07h  3 BYTEs    data segment list pointer
  2688.  0Ah  3 BYTEs    link pointer
  2689.  0Dh    BYTE    command linking ID
  2690.         (return) MBI status code if this CCB is in a BIOS mailbox
  2691.           (see #P0583)
  2692.  0Eh    BYTE    (return) host adapter status (see #P0589)
  2693.  0Fh    BYTE    (return) target device status
  2694.  10h  2 BYTEs    reserved
  2695.  12h  N BYTEs    SCSI CDB
  2696.  12h+N M BYTEs    allocated for sense data
  2697.         (return) sense data (if requested)
  2698. ---operation code 81h---
  2699.  01h    BYTE    address and control
  2700.         bits 7-5: target ID
  2701.         bits 4-0: reserved
  2702. Note:    if a SCSI command completes with the BUSY status, the host adapter
  2703.       periodically restarts it until it completes with other status
  2704.     if a SCSI command completes with the CHECK CONDITION status, the host
  2705.       adapter automatically issues a REQUEST SENSE command with the data
  2706.       length specified by request sense allocation length field; the actual
  2707.       bytes returned are placed in the area allocated for sense data; but
  2708.       if the request sense allocation length was 01h, no REQUEST SENSE
  2709.       command is issued
  2710.     if the host adapter completes a SCSI command with the CHECK CONDITION
  2711.       status while it is operating in the target mode, the same sense data
  2712.       that will later be received by the initiator is also placed in the
  2713.       area allocated for sense data
  2714.     command linking is not supported in target mode
  2715.     for a target mode CCB target device status field is used to indicate
  2716.       to the host what status the host adapter returned to the initiator;
  2717.       SCSI CDB field is used to return the CDB from the initiator
  2718. SeeAlso: #P0577,#P0582,#P0584
  2719.  
  2720. (Table P0587)
  2721. Values for CCB type:
  2722.  00h    initiator CCB
  2723.  01h    target CCB (not on AHA-1540/W1542A)
  2724.  02h    initiator CCB with scatter/gather (see #P0590) (not on AHA-1540)
  2725.  03h    initiator CCB with residual length (AHA-154xB or higher)
  2726.  04h    initiator CCB with scatter/gather and residual length (see #P0590)
  2727.     (AHA-154xB or higher)
  2728.  81h    bus device reset CCB
  2729. Note:    residual length is returned in the data length field of CCB
  2730.     initiator CCB with scatter/gather cannot have a zero data length or
  2731.       contain more than 16 entries
  2732. SeeAlso: #P0577,#P0586
  2733.  
  2734. Bitfields for the initiator mode address and control CCB field:
  2735. Bit(s)    Description    (Table P0601)
  2736.  7-5    target ID
  2737.  4-3    transfer direction
  2738.     00 determined by the SCSI command
  2739.     01 inbound data     transfer, length is checked
  2740.     10 outbound data transfer, length is checked
  2741.     11 no data transfer (suppress inbound data transfer)
  2742.  2-0    LUN
  2743. SeeAlso: #P0586,#P0589
  2744.  
  2745. (Table P0589)
  2746. Values for host adapter status:
  2747.  00h    command complete
  2748.  0Ah    linked command complete (linked CCBs only)
  2749.  0Bh    linked command complete with flag (linked CCBs only)
  2750.  11h    selection time out
  2751.  12h    data overrun/underrun
  2752.  13h    unexpected bus free
  2753.  14h    target bus phase sequence failure
  2754.  15h    invalid mailbox out command
  2755.  16h    invalid CCB operation code
  2756.  17h    linked CCB does not have the same LUN
  2757.  18h    (not AHA-1540/W1542A) invalid target direction received from host
  2758.       (target mode)
  2759.  19h    (not AHA-1540/W1542A) duplicate CCB received (target mode)
  2760.  1Ah    invalid CCB or segment list parameter
  2761. Notes:    in the initiator mode, if the target attempted to transfer more data
  2762.       than was allocated by the data length field or the sum of the data
  2763.       segment length fields, and the length checking was enabled via bits
  2764.       4-3 of the address and control field, the CCB will be returned with a
  2765.       host status of 12h; if the length checking was not enabled, command
  2766.       will be completed without error
  2767.     in the target mode, if the transfer length specified by the SEND/
  2768.       RECEIVE command is not equal to that specified in the target mode CCB
  2769.       the host adapter will notify the CPU, setting the incorrect length
  2770.       indication bit (ILI), bit 5 of byte 2 in the area allocated for sense
  2771.       data; also, bytes 3..6 in this area will contain the residue of the
  2772.       length requested in the SSCI command and the data length in the CCB
  2773.       (MSB first); if it is negative the GOOD status will be returned to
  2774.       the initiator, else the CHECK CONDITION status will be returned (with
  2775.       subsequent REQUEST SENSE returning ILI in byte 2 and residue in bytes
  2776.       3..6 of the sense data); the CCB will be returned with a host status
  2777.       of 12h in both cases
  2778.       will be completed without error
  2779.     in case of target bus sequence failure host adapter will generate a
  2780.       SCSI reset condition setting bit 3 in the interrupt flag register and
  2781.       generating an interrupt
  2782.     in target mode one CCB may be presented for each unique combination of
  2783.       LUN, Initiator, and direction; if a second CCB to the same LUN and
  2784.       initiator with the same direction bit is sent to the host adapter,
  2785.       the CCB will be returned with a host status of 19h
  2786.     if a segment list with a zero length segment or invalid segment list
  2787.       boundaries was received or a CCB parameter was invalid, the CCB will
  2788.       be returned with a host status of 1Ah
  2789. SeeAlso: #P0577,#P0586,#P0601
  2790.  
  2791. Format of AHA-154x scatter/gather segment:
  2792. Offset    Size    Description    (Table P0590)
  2793.  00h  3 BYTEs    data length
  2794.         in big-endian format
  2795.  03h  3 BYTEs    data pointer
  2796.         physical address in big-endian format
  2797. Note:    if the segment ends at odd/even bondary, the next segment must begin
  2798.       on the same boundary
  2799. SeeAlso: #P0577
  2800. ----------P0330033F--------------------------
  2801. PORT 0330-033F - CompaQ SCSI adapter. alternate address at 0130
  2802. --------d-P0330033F--------------------------
  2803. PORT 0330-033F - Philips CD-ROM player CM50
  2804. --------d-P03340337--------------------------
  2805. PORT 0334-0337 - Adaptec 154xB/154xC SCSI adapter.
  2806. Range:    four ports at any of 0130, 0134, 0230, 0234, 0330 (default) or 0334
  2807. --------s-P0338------------------------------
  2808. PORT 0338 - AdLib soundblaster card
  2809. --------S-P0338033F--------------------------
  2810. PORT 0338-033F - COM port addresses on UniRAM card by German magazine c't
  2811. Range:    selectable from 0238, 02E8, 02F8, 0338, 03E0, 03E8, 03F8
  2812. ----------P0340034F--------------------------
  2813. PORT 0340-034F - Philips CD-ROM player CM50
  2814. ----------P0340034F--------------------------
  2815. PORT 0340-034F - SCSI (1st Small Computer System Interface) adapter
  2816. Range:    alternate address at 0140-014F
  2817. --------s-P0340------------------------------
  2818. PORT 0340 - Crystal Semiconductor CDB4922 evaluation board
  2819. Desc:    the CDB4922 is an evaluation board for the CS4922 MPEG audio
  2820.       decoder (see I2C xxh"CS4922")
  2821. --------s-P0340034F--------------------------
  2822. PORT 0340-034F - Gravis Ultra Sound by Advanced Gravis
  2823. Range: The I/O address range is dipswitch selectable from:
  2824.        0200-020F and 0300-030F
  2825.        0210-021F and 0310-031F
  2826.        0220-022F and 0320-032F
  2827.        0230-023F and 0330-033F
  2828.        0240-024F and 0340-034F
  2829.        0250-025F and 0350-035F
  2830.        0260-026F and 0360-036F
  2831.        0270-027F and 0370-037F
  2832. Note:    the AMD InterWave chip provides a superset of the UltraSound's
  2833.       functionality, including these ports
  2834. SeeAlso: PORT 0240h-024Fh,PORT 0746h
  2835.  
  2836. 0340  -W  MIDI Control (see #P0591)
  2837. 0340  R-  MIDI Status (see #P0592)
  2838. 0341  -W  MIDI Transmit Data
  2839. 0341  R-  MIDI Receive Data
  2840. 0342  RW  GF1 Page Register / Voice Select
  2841. 0343  RW  GF1/Global Register Select (see #P0593)
  2842. 0344  RW  GF1/Global Data Low Byte (16 bits)
  2843. 0345  RW  GF1/Global Data High Byte (8 bits)
  2844. 0346  -W  Mixer Data Port
  2845. 0347  RW  GF1 DRAM
  2846.          Direct Read Write at Loction pointed with regs 43 and 44
  2847.  
  2848. Bitfields for Gravis Ultra Sound MIDI control register:
  2849. Bit(s)    Description    (Table P0591)
  2850.  7       Receive IRQ (1 = enabled)
  2851.  5-6   Xmit IRQ
  2852.  0-1   Master Reset (1 = enabled)
  2853. SeeAlso: #P0546,#P0548,#P0592
  2854.  
  2855. Bitfields for Gravis Ultra Sound MIDI status register:
  2856. Bit(s)    Description    (Table P0592)
  2857.  7    Interrupt pending
  2858.  5    Overrun Error
  2859.  4    Framing Error
  2860.  1    Transmit Register Empty
  2861.  0    Receive Register Empty
  2862. SeeAlso: #P0591,#P0593
  2863.  
  2864. (Table P0593)
  2865. Values for Gravis Ultra Sound GF1/Global Registers:
  2866. ---Voice specific registers---
  2867.  00h  w        Voice Control (see #P0595)
  2868.  01h  w        Frequency Control
  2869.          bit 15-10     Integer Portion
  2870.          bit 9-1     Fractional Portion
  2871.  02h  w        Start Address HIGH
  2872.          bit 12-0     Address Lines 19-7
  2873.  03h  w        Start Address LOW
  2874.          bit 15-9     Address Lines 6-0
  2875.          bit 8-5     Fractional Part of Start Address
  2876.  04h  w        End Address HIGH
  2877.          bit 12-0     Address Lines 19-7
  2878.  05h  w        End Address LOW
  2879.          bit 15-9     Address Lines 6-0
  2880.          bit 8-5     Fractional Part of End Address
  2881.  06h  w        Volume Ramp Rate
  2882.          bit 5-0     Amount added
  2883.          bit 7-6     Rate
  2884.  07h  w        Volume Ramp Start
  2885.          bit 7-4     Exponent
  2886.          bit 3-0     Mantissa
  2887.  08h  w        Volume Ramp End
  2888.          bit 7-4     Exponent
  2889.          bit 3-0     Mantissa
  2890.  09h  w        Current Volume
  2891.          bit 15-12     Exponent
  2892.          bit 11-4     Mantissa
  2893.  0Ah  w        Current Address HIGH
  2894.          bit 12-0     Address Lines 19-7
  2895.  0Bh  w        Current Address LOW
  2896.          bit 15-9     Address Lines 6-0
  2897.          bit 8-0     Fractional Position
  2898.  0Ch  w        Pan Position
  2899.          bit 3-0     Pan Postion
  2900.  0Dh  w        Volume Control (see #P0596)
  2901.  0Eh  w        Active Voices
  2902.          bit 5-0     #Voices -1  (allowed 13 - 31)
  2903.  0Fh  w        IRQ Source Register (see #P0597)
  2904. ---NOT voice specific---
  2905.  41h  r/w   DRAM DMA Control (see #P0598)
  2906.  42h  w        DMA Start Address
  2907.          bits 15-0     DMA Address Lines 19-4
  2908.  43h  w        DRAM I/O Address LOW
  2909.  44h  w        DRAM I/O Address HIGH
  2910.          bits 0-3     Upper 4 Address Lines
  2911.  45h  r/w   Timer Control
  2912.          bit 3     Enable Timer 2
  2913.          bit 2     Enable Timer 1
  2914.  46h  w        Timer 1 Count (granularity of 80 micro sec)
  2915.  47h  w        Timer 2 Count (granulatity of 320 micro sec)
  2916.  48h  w        Sampling Frequency
  2917.          rate = 9878400 / (16 * (FREQ + 2))
  2918.  49h  r/w   Sampling Control (see #P0599)
  2919.  4Bh  w        Joystick Trim DAC
  2920.  4Ch  r/w   RESET
  2921.          bit 2     GF1 Master IRQ Enable
  2922.          bit 1     DAC Enable
  2923.          bit 0     Master Reset
  2924. ---Voice specific registers---
  2925.  80h  r        Voice Control (see 00h)
  2926.  81h  r        Frequency Control (see 01h)
  2927.  82h  r        Start Address HIGH (see 02h)
  2928.  83h  r        Start Address LOW (see 03h)
  2929.  84h  r        End Address HIGH (see 04h)
  2930.  85h  r        End Address LOW (see 05h)
  2931.  86h  r        Volume Ramp Rate (see 06h)
  2932.  87h  r        Volume Ramp Start (see 07h)
  2933.  88h  r        Volume Ramp End (see 08h)
  2934.  89h  r        Current Volume (see 09h)
  2935.  8Ah  r        Current Address HIGH (see 0Ah)
  2936.  8Bh  r        Current Address LOW (see 0Bh)
  2937.  8Ch  r        Pan Position (see 0Ch)
  2938.  8Dh  r        Volume Control (see 0Dh)
  2939.  8Eh  r        Active Voices (see 0Eh)
  2940.  8Fh  r        IRQ Status (see 0Fh)
  2941. SeeAlso: #P0592,#P0594
  2942.  
  2943. (Table P0594)
  2944. Values for InterWave synthesizer registers:
  2945. ---voice-specific registers---
  2946.  10h  w        synthesizer     upper address
  2947.  11h  w        synthesizer effects address high (16 bits)
  2948.  12h  w        synthesizer effects address low (16 bits)
  2949.  13h  w        synthesizer left offset (16 bits)
  2950.  14h  w        synthesizer effects output accumulator select
  2951.  15h  w        synthesizer mode select
  2952.  16h  w        synthesizer effects volume (16 bits)
  2953.  17h  w        synthesizer frequency LFO
  2954.  18h  w        synthesizer volume LFO
  2955. ---NOT voice-specific---
  2956.  19h  w        synthesizer global mode
  2957.  1Ah  w        synthesizer LFO base address (16 bits)
  2958. ---voice-specific registers---
  2959.  1Bh  w        synthesizer right offset (16 bits)
  2960.  1Ch  w        synthesizer left offset (16 bits)
  2961.  1Dh  w        synthesizer effect volume final (16 bits)
  2962. ---NOT voice-specific---
  2963.  41h  r/w   local memory control: DMA control
  2964.  42h  r/w   local memory control: DMA start address bits 19-4 (16 bits)
  2965.  43h  w        local memory control: I/O address low (16 bits)
  2966.  44h  w        local memory control: I/O address high (16 bits)
  2967.  45h  r/w   AdLib/SoundBlaster control
  2968.  46h  r/w   AdLib timer 1
  2969.  47h  r/w   AdLib timer 2
  2970.  49h  r/w   ADC sample control
  2971.  4Bh  r/w   joystick trim
  2972.  4Ch  w        GUS reset
  2973.  50h  r/w   local memory control: DMA start address bits 23-20/3-0 (16 bits)
  2974.  51h  r/w   local memory control: 16-bit access
  2975.  52h  r/w   local memory control: configuration
  2976.  53h  r/w   local memory control: control
  2977.  54h  r/w   local memory control: record FIFO base address bits 23-8 (16-bit)
  2978.  55h  r/w   local memory control: playback FIFO base address bits 23-8 (16-bit)
  2979.  56h  r/w   local memory control: FIFO size (16-bit)
  2980.  57h  r/w   local memory control: DMA interleave control (16-bit)
  2981.  58h  r/w   local memory control: DMA interleaev base address bits 23-8
  2982.  59h  r/w   compatibility control
  2983.  5Ah  r/w   decode control
  2984.  5Bh  r/w   version number
  2985.  5Ch  r/w   MPU-401 emulation control A
  2986.  5Dh  r/w   MPU-401 emulation control B
  2987.  5Eh  w        MIDI receive FIFO access
  2988.  5Fh  -        reserved
  2989.  60h  r/w   emulation IRQ
  2990. ---voice-specific registers---
  2991.  90h  r        synthesizer     upper address
  2992.  91h  r        synthesizer effects address high (16 bits)
  2993.  92h  r        synthesizer effects address low (16 bits)
  2994.  93h  r        synthesizer left offset (16 bits)
  2995.  94h  r        synthesizer effects output accumulator select
  2996.  95h  r        synthesizer mode select
  2997.  96h  r        synthesizer effects volume (16 bits)
  2998.  97h  r        synthesizer frequency LFO
  2999.  98h  r        synthesizer volume LFO
  3000. ---NOT voice-specific---
  3001.  99h  r        synthesizer global mode
  3002.  9Ah  r        synthesizer LFO base address (16 bits)
  3003. ---voice-specific registers---
  3004.  9Bh  r        synthesizer right offset (16 bits)
  3005.  9Ch  r        synthesizer left offset (16 bits)
  3006.  9Dh  r        synthesizer effect volume final (16 bits)
  3007. ---NOT voice-specific---
  3008.  9Fh  r        synthesizer voices IRQ
  3009. Note:    these registers are *in*addition* to the Gravis UltraSound registers
  3010. SeeAlso: #P0593
  3011.  
  3012. Bitfields for Gravis Ultra Sound voice control global register:
  3013. Bit(s)    Description    (Table P0595)
  3014.  7     IRQ pending
  3015.  6     Direction
  3016.  5     Enable WAVE IRQ
  3017.  4     Enable bi-directional Looping
  3018.  3     Enable Looping
  3019.  2     Size data (8/16 bits)
  3020.  1     Stop Voice
  3021.  0     Voice Stopped
  3022. SeeAlso: #P0593,#P0596
  3023.  
  3024. Bitfields for Gravis Ultra Sound volume control global register:
  3025. Bit(s)    Description    (Table P0596)
  3026.  7     IRQ Pending
  3027.  6     Direction
  3028.  5     Enable Volume Ramp IRQ
  3029.  4     Enable bi-directional Looping
  3030.  3     Enable Looping
  3031.  2     Rollover Condition
  3032.  1     Stop Ramp
  3033.  0     Ramp Stopped
  3034. SeeAlso: #P0593,#P0595
  3035.  
  3036. Bitfields for Gravis Ultra Sound IRQ source register:
  3037. Bit(s)    Description    (Table P0597)
  3038.  7     WaveTable IRQ pending
  3039.  6     Volume Ramp IRQ pending
  3040.  4-0     Voice Number
  3041. SeeAlso: #P0593,#P0595,#P0598
  3042.  
  3043. Bitfields for Gravis Ultra Sound DRAM DMA control register:
  3044. Bit(s)    Description    (Table P0598)
  3045.  7     Invert MSB
  3046.  6     Data Size (8/16 bits)
  3047.  5     DMA Pending
  3048.  3-4     DMA Rate Divider
  3049.  2     DMA Channel Width (8/16 bits)
  3050.  1     DMA Direction (1 = read)
  3051.  0     DMA Enable
  3052. SeeAlso: #P0593,#P0597
  3053.  
  3054. Bitfields for Gravis Ultra Sound sampling control register:
  3055. Bit(s)    Description    (Table P0599)
  3056.  7     Invert MSB
  3057.  6     DMA IRQ pending
  3058.  5     DMA IRQ enable
  3059.  2     DMA width (8/16 bits)
  3060.  1     Mode (mone/stereo)
  3061.  0     Start Sampling
  3062. SeeAlso: #P0593
  3063. ----------P03400357--------------------------
  3064. PORT 0340-0357 - RTC (1st Real Time Clock for XT)
  3065.         (used by TIMER.COM v1.2 which is the 'standard' timer program)
  3066. Range:    alternate at 0240-0257
  3067. SeeAlso:  PORT 0240h-0257h
  3068.  
  3069. 0340  RW  0.001 seconds        0-99
  3070. 0341  RW  0.1 and 0.01 seconds    0-99
  3071. 0342  RW  seconds        0-59
  3072. 0343  RW  minutes        0-59
  3073. 0343  RW  hours            0-23
  3074. 0345  RW  day of week        1-7
  3075. 0346  RW  day of month        1-31
  3076. 0347  RW  month            1-12
  3077. 0348  RW  RAM (upper nybble only)
  3078. 0349  RW  year            0-99
  3079. 034A  RW  RAM last month storage
  3080. 034B  RW  RAM year storage (-80)
  3081. 034C  RW  RAM reserved
  3082. 034D  RW  RAM not used
  3083. 034E  RW  RAM not used
  3084. 034F  RW  RAM not used
  3085. 0350  R-  interrupt status register
  3086. 0351  -W  interrupt control register
  3087. 0352  -W  counter reset
  3088. 0353  -W  RAM reset
  3089. 0354  R-  status bit
  3090. 0355  -W  GO command
  3091. 0356  ??  standby interrupt
  3092. 0357  ??  test mode
  3093. --------d-P0340035F--------------------------
  3094. PORT 0340-035F -  Adaptec AHA-152x SCSI adapter
  3095. Range:    alternate address at 0140
  3096. Note:    Adaptec AHA-152x SCSI adapter series are based upon Adaptec
  3097.       AIC-6260/6360/6370 SCSI controllers
  3098. SeeAlso: PORT xxxxh"Adaptec AIC-78xx"
  3099.  
  3100. +000  RW  SCSI sequence control register (SCSISEQ) (see #P0600)
  3101. +001  RW  SCSI transfer control register 0 (SXFRCTL0) (see #P0601)
  3102. +002  RW  SCSI transfer control register 1 (SXFRCTL1) (see #P0602)
  3103. +003  R-  SCSI control signal read  register (SCSISIGI) (see #P0603)
  3104. +003  -W  SCSI control signal write register (SCSISIGO) (see #P0604)
  3105. +004  RW  SCSI rate control register (SCSIRATE) (see #P0605)
  3106. +005  RW  SCSI ID register (SCSIID) (see #P0606)
  3107. +006  RW  SCSI latched data register (SCSIDAT)
  3108.       read/write causes -ACK to pulse
  3109. +007  R?  SCSI data bus register (SCSIBUS)
  3110. +008  RW  SCSI transfer count register (STCNT) (3 bytes long)
  3111. +00B  R-  SCSI status register 0 (SSTAT0) (see #P0607)
  3112. +00B  -W  clear SCSI interrupt register 0 (CLRSINT0) (see #P0608)
  3113. +00C  R-  SCSI status register 1 (SSTAT1) (see #P0609)
  3114. +00C  -W  clear SCSI interrupt register 1 (CLRSINT1) (see #P0610)
  3115. +00D  R-  SCSI status register 2 (SSTAT2) (see #P0611)
  3116. +00E  R-  SCSI status register 3 (SSTAT3) (see #P0612)
  3117. +00E  ?W  SCSI test control register (SCSITEST) (see #P0613)
  3118. +00F  R-  SCSI status register 4 (SSTAT4) (see #P0614)
  3119. +00F  -W  clear SCSI interrupt register 4 (CLRSINT4) (see #P0615)
  3120. +010  RW  SCSI interrupt mode register 0 (SIMODE0) (see #P0616)
  3121. +011  RW  SCSI interrupt mode register 1 (SIMODE1) (see #P0617)
  3122. +012  RW  DMA control register 0 (DMACNTRL0) (see #P0618)
  3123. +013  RW  DMA control register 1 (DMACNTRL1) (see #P0619)
  3124. +014  RW  DMA status register (DMASTAT) (see #P0620)
  3125. +015  RW  FIFO status register (FIFOSTAT)
  3126. +016w RW  data port register (DATAPORT)
  3127. +018  RW  burst control register (BRSTCNTRL) (see #P0621)
  3128. +01A  RW  port A register (PORTA) (see #P0622)
  3129. +01B  RW  port B register (PORTB) (see #P0623)
  3130. +01C  RW  revision register (REV)
  3131. +01D  RW  stack register (STACK)
  3132. +01E  RW  test register (TEST) (see #P0624)
  3133. +01F  R?  (AIC-6360+) ID register (ID)
  3134.       32-byte ID string can be read here
  3135. Notes:    the SCSI latched data register is used to transfer data on the SCSI bus
  3136.       during automatic or manual PIO mode
  3137.     the SCSI data bus register reflects the state of SCSI data bus lines
  3138.       directly
  3139.  
  3140. Bitfields for SCSI sequence control register (SCSISEQ):
  3141. Bit(s)    Description    (Table P0600)
  3142.  7    enable target mode (TEMODEO)
  3143.  6    enable selection out (ENSELO)
  3144.  5    enable selection in  (ENSELI)
  3145.  4    enable reselection in (ENRESELI)
  3146.  3    "ENAUTOATNO"
  3147.  2    "ENAUTOATNI"
  3148.  1    enable auto -ATN on parity error (ENAUTOATNP)
  3149.  0    SCSI reset out (SCSIRSTO)
  3150. Note:    each bit when set starts a specific SCSI sequence on the bus
  3151. SeeAlso: #P0602,#P0607,#P0608,#P0616
  3152.  
  3153. Bitfields for SCSI transfer control register 0 (SXFRCTL0):
  3154. Bit(s)    Description    (Table P0601)
  3155.  7    SCSI FIFO enable (SCSIEN)
  3156.  6    DMA  FIFO enable (DMAEN)
  3157.  5    channel enable (CHEN)
  3158.  4    clear SCSI transfer counter (CLRSTCNT)
  3159.  3    SCSI PIO enable (SPIOEN)
  3160.  2    SCAM enable (SCAMEN)
  3161.  1    clear channel (CLRCH)
  3162.  0    reserved
  3163. SeeAlso: #P0602,#P0607,#P0611,#P0618,#P0620
  3164.  
  3165. Bitfields for SCSI transfer control register 1 (SXFRCTL1):
  3166. Bit(s)    Description    (Table P0602)
  3167.  7    bit bucket (BITBUCKET)
  3168.  6    SCSI counter wrap enable (SWRAPEN)
  3169.  5    enable SCSI parity check (ENSPCHK)
  3170.  4-3    selection time-out select (STIMESEL)
  3171.     00 256 ms
  3172.     01 128 ms
  3173.     10 64  ms
  3174.     11 32  ms
  3175.  2    enable selection timer (ENSTIMER)
  3176.  1    byte align (BYTEALIGN)
  3177.  0    reserved
  3178. SeeAlso: #P0600,#P0601
  3179.  
  3180. Bitfields for SCSI control signal read register (SCSISIGI):
  3181. Bit(s)    Description    (Table P0603)
  3182.  7    -C/D input (CDI)
  3183.  6    -I/O input (IOI)
  3184.  5    -MSG input (MSGI)
  3185.  4    -ATN input (ATNI)
  3186.  3    -SEL input (SELI)
  3187.  2    -BSY input (BSYI)
  3188.  1    -REQ input (REQI)
  3189.  0    -ACK input (ACKI)
  3190. Note:    this register reflects the actual state of the SCSI bus control lines
  3191. SeeAlso: #P0604
  3192.  
  3193. Bitfields for SCSI control signal write register (SCSISIGO):
  3194. Bit(s)    Description    (Table P0604)
  3195.  7    -C/D output (CDO)
  3196.  6    -I/O output (IOO)
  3197.  5    -MSG output (MSGO)
  3198.  4    -ATN output (ATNO)
  3199.  3    -SEL output (SELO)
  3200.  2    -BSY output (BSYO)
  3201.  1    -REQ output (REQO)
  3202.  0    -ACK output (ACKO)
  3203. Notes:    writing to this register modifies the control signals on the bus; only
  3204.       those signals that are allowed in the current mode (initiator/target)
  3205.       are asserted
  3206.     bits 7-5 in initiator mode represent the expected SCSI bus phase and
  3207.       can be used to trigger phase mismatch and phase change interrupts
  3208. SeeAlso: #P0603
  3209.  
  3210. Bitfields for SCSI rate control register (SCSIRATE):
  3211. Bit(s)    Description    (Table P0605)
  3212.  7    reserved
  3213.  6-4    synchronous transfer rate (SXFR)
  3214.     rate = 100 + SXFR * 25 (ns)
  3215.  3-0    synchronous offset (SOFS)
  3216. Note:    contents of this register determine the synchronous SCSI data transfer
  3217.       rate and the maximum synchronous -REQ/-ACK offset; an offset of 0 in
  3218.       the bits 3-0 disables synchronous data transfers, any offset value
  3219.       greater than 0 enables snchronous transfers
  3220. SeeAlso: #P0611
  3221.  
  3222. Bitfields for SCSI ID register (SCSIID):
  3223. Bit(s)    Description    (Table P0606)
  3224.  7    reserved
  3225.  6-4    our ID (OID)
  3226.  3    reserved
  3227.  2-0    target ID (TID)
  3228. Note:    this register contains the SCSI ID of the board and the current target
  3229.       on the selected channel
  3230. SeeAlso: #P0982
  3231.  
  3232. Bitfields for SCSI status register 0 (SSTAT0):
  3233. Bit(s)    Description    (Table P0607)
  3234.  7    target mode (TARGET)
  3235.  6    selection out done (SELDO)
  3236.  5    selection in  done (SELDI)
  3237.  4    selection in progress (SELINGO)
  3238.  3    SCSI counter wrap (SWRAP)
  3239.  2    SCSI PIO done  (SDONE)
  3240.  1    SCSI PIO ready (SPIORDY)
  3241.  0    DMA done (DMADONE)
  3242. Note:    bits 1-0 and 6-4 are self-clearing
  3243.     bit 2 is set when the SCSI transfer count register decrements to 0
  3244. SeeAlso: #P0600,#P0601,#P0608,#P0616
  3245.  
  3246. Bitfields for clear SCSI interrupt register 0 (CLRSINT0):
  3247. Bit(s)    Description    (Table P0608)
  3248.  7    set SCSI PIO done? (SETSDONE)
  3249.  6    clear selection out done (CLRSELDO)
  3250.  5    clear selection in  done (CLRSELDI)
  3251.  4    clear selection in progress (CLRSELINGO)
  3252.  3    clear SCSI counter wrap (CLRSWRAP)
  3253.  2    clear SCSI PIO done (CLRSDONE)
  3254.  1    clear SCSI PIO ready (CLRSPIORDY)
  3255.  0    reserved
  3256. Note:    writing 1 to a bit clears the associated SCSI interrupt; writing 1 to
  3257.       the bits 3-2 also clears the asscoiated bits in SSTAT0
  3258. SeeAlso: #P0600,#P0601,#P0607,#P0616
  3259.  
  3260. Bitfields for SCSI status register 1 (SSTAT1):
  3261. Bit(s)    Description    (Table P0609)
  3262.  7    selection time-out (SELTO)
  3263.  6    (target) "ATNTARG"
  3264.  5    SCSI reset in (SCSIRSTI)
  3265.  4    phase mismatch (PHASEMIS)
  3266.  3    bus free (BUSFREE)
  3267.  2    SCSI parity error (SCSIPERR)
  3268.  1    phase changed (PHASECHG)
  3269.  0    -REQ asserted (REQINIT)
  3270. Notes:    bit 0 can be cleared by setting bit 0 in the clear SCSI interrupt 1
  3271.       register (CLRSINT1), and by asserting -ACK as well
  3272.     bit 4 is self-clearing
  3273. SeeAlso: #P0602,#P0603,#P0604,#P0610,#P0617
  3274.  
  3275. Bitfields for clear SCSI interrupt register 1 (CLRSINT1):
  3276. Bit(s)    Description    (Table P0610)
  3277.  7    clear selection time-out (CLRSELTIMEO)
  3278.  6    clear -ATN output (CLRATNO)
  3279.  5    clear SCSI reset in (CLRSCSIRSTI)
  3280.  4    reserved
  3281.  3    clear bus free (CLRBUSFREE)
  3282.  2    clear SCSI parity error (CLRSCSIPERR)
  3283.  1    clear phase changed (CLRPHASECHG)
  3284.  0    clear -REQ asserted (CLRREQINIT)
  3285. Note:    writing 1 to a bit clears the associated SCSI interrupt; writing 1 to
  3286.       the bits 3-0, 5, and 7 also clears the associated bits in SSTAT1
  3287. SeeAlso: #P0603,#P0604,#P0609,#P0617
  3288.  
  3289. Bitfields for SCSI status register 2 (SSTAT2):
  3290. Bit(s)    Description    (Table P0611)
  3291.  7-6    reserved
  3292.  5    "SOFFSET"
  3293.  4    SCSI FIFO empty (SEMPTY)
  3294.  3    SCSI FIFO full    (SFULL)
  3295.  2-0    SCSI FIFO count (SFCNT)
  3296. Note:    the SCSI FIFO is 8 bytes long; bit 3 is set when all the 8 bytes are
  3297.       full (bits 2-0 are clear)
  3298. SeeAlso: #P0601,#P0605,#P0614,#P0615
  3299.  
  3300. Bitfields for SCSI status register 3 (SSTAT3):
  3301. Bit(s)    Description    (Table P0612)
  3302.  7-4    "SCSICNT"
  3303.  3-0    "OFFCNT"
  3304. SeeAlso: #P0605,#P0611
  3305.  
  3306. Bitfields for SCSI test control register (SCSITEST):
  3307. Bit(s)    Description    (Table P0613)
  3308.  7-4    reserved
  3309.  3    "SCTESTU"
  3310.  2    "SCTESTD"
  3311.  1    reserved
  3312.  0    "STCTEST"
  3313. SeeAlso: #P0624
  3314.  
  3315. Bitfields for SCSI status register 4 (SSTAT4):
  3316. Bit(s)    Description    (Table P0614)
  3317.  7-3    reserved
  3318.  2    "SYNCERR"
  3319.  1    FIFO write error? (FWERR)
  3320.  0    FIFO read  error? (FRERR)
  3321. SeeAlso: #P0611,#P0615
  3322.  
  3323. Bitfields for clear SCSI interrupt register 4 (CLRSINT4):
  3324. Bit(s)    Description    (Table P0615)
  3325.  7-3    reserved
  3326.  2    "CLRSYNCERR"
  3327.  1    clear FIFO write error? (CLRFWERR)
  3328.  0    clear FIFO read     error? (CLRFRERR)
  3329. SeeAlso: #P0611,#P0614
  3330.  
  3331. Bitfields for SCSI interrupt mode register 0 (SIMODE0):
  3332. Bit(s)    Description    (Table P0616)
  3333.  7    reserved
  3334.  6    enable selection out done (ENSELDO)
  3335.  5    enable selection in  done (ENSELDI)
  3336.  4    enable selection in progress (ENSELINGO)
  3337.  3    enable SCSI counter wrap (ENSWRAP)
  3338.  2    enable SCSI PIO done  (ENSDONE)
  3339.  1    enable SCSI PIO ready (ENSPIORDY)
  3340.  0    enable DMA done (ENDMADONE)
  3341. Note:    setting any bit will enable the corresponding function to interrupt
  3342.       via the IRQ pin
  3343. SeeAlso: #P0607,#P0608,#P0617,#P0618
  3344.  
  3345. Bitfields for SCSI interrupt mode register 1 (SIMODE1):
  3346. Bit(s)    Description    (Table P0617)
  3347.  7    enable selection time-out (ENSELTIMO)
  3348.  6    (target) "ENATNTARG"
  3349.  5    enable SCSI reset (ENSCSIRST)
  3350.  4    enable phase mismatch (ENPHASEMIS)
  3351.  3    enable bus free (ENBUSFREE)
  3352.  2    enable SCSI parity error (ENSCSIPERR)
  3353.  1    enable phase changed (ENPHASECHG)
  3354.  0    enable -REQ asserted (ENREQINIT)
  3355. Note:    setting a bit enables the corresponding function to interrupt via the
  3356.       IRQ pin
  3357. SeeAlso: #P0609,#P0610,#P0616
  3358.  
  3359. Bitfields for DMA control register 0 (DMACNTRL0):
  3360. Bit(s)    Description    (Table P0618)
  3361.  7    enable DMA (ENDMA)
  3362.  6    =0 16-bit mode
  3363.     =1 8-bit mode (8BIT)
  3364.  5    =0 PIO mode
  3365.     =1 DMA mode
  3366.  4    double word PIO (DWORDPIO)
  3367.  3    =0 read
  3368.     =1 write
  3369.  2    interrupt enable (INTEN)
  3370.  1    reset FIFO (RSTFIFO)
  3371.  0    software interrupt (SWINT)
  3372. Note:    write to this register takes the controller from the power down mode
  3373. SeeAlso: #P0601
  3374.  
  3375. Bitfields for DMA control register 1 (DMACNTRL1):
  3376. Bit(s)    Description    (Table P0619)
  3377.  7    power down (PWRDWN)
  3378.  6    "ENSTK32"
  3379.  5    reserved
  3380.  4-0    stack pointer? (STK)
  3381.  
  3382. Bitfields for DMA status register (DMASTAT):
  3383. Bit(s)    Description    (Table P0620)
  3384.  7    "ATDONE"
  3385.  6    word ready (WORDRDY)
  3386.  5    interrupt status (INTSTAT)
  3387.  4    DMA FIFO full  (DFIFOFULL)
  3388.  3    DMA FIFO empty (DFIFOEMP)
  3389.  2    (AIC-6360+?) DMA FIFO half-full? (DFIFOHF)
  3390.  1    (AIC-6360+?) double word ready (DWORDRDY)
  3391.  0    reserved
  3392. SeeAlso: #P0601,#P0618
  3393.  
  3394. Bitfields for burst control register (BRSTCNTRL):
  3395. Bit(s)    Description    (Table P0621)
  3396.  7-4    bus on    time (BON)
  3397.  3-0    bus off time (BOFF)
  3398. Note:    the bus on/off times are in microseconds
  3399. SeeAlso: #P0624
  3400.  
  3401. Bitfields for port A register (PORTA):
  3402. Bit(s)    Description    (Table P0622)
  3403.  7    transfer mode
  3404.     =0 PIO
  3405.     =1 DMA
  3406.  6    boot enabled (BOOT)
  3407.  5-4    message classes (MSGCLASSES)
  3408.     00 #4
  3409.     01 #0, #1, #2, #3, #4
  3410.     10 #0, #3, #4
  3411.     11 #0, #4
  3412.  3    initial synchronous negotiation enabled (SYNCNEG)
  3413.  2    target disconnect enabled (TARDISC)
  3414.  1-0    reserved
  3415. SeeAlso: #P0623
  3416.  
  3417. Bitfields for port B register (PORTB):
  3418. Bit(s)    Description    (Table P0623)
  3419.  7    SCSI parity enabled (PARITY)
  3420.  6-5    DMA channel (DMACHAN)
  3421.     00 DMA channel 0
  3422.     01 DMA channel 5
  3423.     10 DMA channel 6
  3424.     11 DMA channel 7
  3425.  4-3    "IRQ"
  3426.     00,11 IRQ12
  3427.     01 IRQ10
  3428.     10 IRQ11
  3429.  2-0    SCSI ID
  3430. SeeAlso: #P0622
  3431.  
  3432. Bitfields for test register (TEST):
  3433. Bit(s)    Description    (Table P0624)
  3434.  7    reserved
  3435.  6    bus off timer test (BOFFTMR)
  3436.  5    bus on    timer test (BONTMR)
  3437.  4    SCSI transfer count register high   byte test (STCNTH)
  3438.  3    SCSI transfer count register middle byte test (STCNTM)
  3439.  2    SCSI transfer count register low    byte test (STCNTL)
  3440.  1    SCSI block test (SCSIBLK)
  3441.  0    DMA  block test (DMABLK)
  3442. SeeAlso: #P0613,#P0621
  3443. ----------P03480357--------------------------
  3444. PORT 0348-0357 - DCA 3278
  3445. ----------P034C034F--------------------------
  3446. PORT 034C-034F - Gravis UltraMax by Advanced Gravis
  3447. Range:    The I/O address range is dipswitch selectable from:
  3448.        0200-020F and 0300-030F
  3449.        0210-021F and 0310-031F
  3450.        0220-022F and 0320-032F
  3451.        0230-023F and 0330-033F
  3452.        0240-024F and 0340-034F
  3453.        0250-025F and 0350-035F
  3454.        0260-026F and 0360-036F
  3455.        0270-027F and 0370-037F
  3456. ----------P035A035B--------------------------
  3457. PORT 035A-035B - Adaptec AH1520 jumper settings
  3458.  
  3459. 035A  R      I/O channel setup (see #P0625)
  3460. 035B  R      transfer mode setup (see #P0626)
  3461.  
  3462. Bitfields for Adaptec AH1520 channel setup jumper settings:
  3463. Bit(s)    Description    (Table P0625)
  3464.  7    SCSI parity disabled
  3465.  6-5    DMA channel (00 = channel 0, 01 = 5, 10 = 6, 11 = 7)
  3466.  4-3    IRQ number (00 = IRQ9, 01 = IRQ10, 10 = IRQ11, 11 = IRQ12)
  3467.  2-0    SCSI ID
  3468. SeeAlso: #P0626
  3469.  
  3470. Bitfields for Adaptec AH1520 transfer mode setup jumper settings:
  3471. Bit(s)    Description    (Table P0626)
  3472.  7    DMA transfer mode (clear for PIO)
  3473.  6    boot enabled
  3474.  5-4    boot type
  3475.     00 ???
  3476.     01 boot from floppy
  3477.     10 print configured options
  3478.     11 boot from hard disk
  3479.  3    enable sync negotiation
  3480.  2    enable target disconnection
  3481.  1-0    unused???
  3482. SeeAlso: #P0625
  3483. ----------P035F------------------------------
  3484. PORT 035F - ARTEC Handyscanner A400Z.  alternate address at 15F.
  3485. ----------P03600367--------------------------
  3486. PORT 0360-0367 - PC network (XT only)
  3487. ----------P0360036F--------------------------
  3488. PORT 0360-036F - PC network (AT)
  3489. ----------P0360036F--------------------------
  3490. PORT 0360-036F - National Semiconductor DP8390(1)C/NS3249C network chipset
  3491. Note:    cards based on this IEEE 802.3 networking chipset can use any range
  3492.       of 16 consecutive addresses, and provide a total of four pages of
  3493.       sixteen registers (see #P0627,#P0628,#P0629,#P0759)
  3494.  
  3495. (Table P0627)
  3496. Values for NS DP8390C/NS3249C network chipset Page 0 registers:
  3497. Number    Read Register                Write Register
  3498.  00h    Command reg. (see #P0631)    CR    Command reg.        CR
  3499.  01h    current local DMA address 0    CLDA0    page start reg.        PSTART
  3500.  02h    current local DMA address 1    CLDA1    page stop reg.        PSTOP
  3501.  03h    boundary pointer        BNRY    boundary pointer    BNRY
  3502.  04h    transmit status reg.        TSR    Tx page start address    TPSR
  3503.  05h    number of collisions reg.    NCR    Tx byte count reg.0    TBCR0
  3504.  06h    FIFO                    Tx byte count reg.1    TBCR1
  3505.  07h    interrupt status reg.        ISR    interrupt status reg.    ISR
  3506.  08h    current remote DMA address 0    CRDA0    remote start addr.reg.0 RSAR0
  3507.  09h    current remote DMA address 1    CRDA1    remote start addr.reg.1 RSAR1
  3508.  0Ah    reserved                remote byte count reg.0 RBCR0
  3509.  0Bh    reserved                remote byte count reg.1 RBCR1
  3510.  0Ch    receive status reg.        RSR    Rx configuration reg.    RCR
  3511.  0Dh    tally counter 0 (frame errors)    CNTR0    Tx configuration reg.    TCR
  3512.  0Eh    tally counter 1 (CRC errors)    CNTR1    data configuration reg. DCR
  3513.  0Fh    tally counter 2 (missed pkt)    CNTR2    interrupt mask reg.    IMR
  3514. SeeAlso: #P0628,#P0629,#P0630
  3515.  
  3516. (Table P0628)
  3517. Values for NS DP8390C/NS3249C network chipset Page 1 registers:
  3518. Number    Read/Write
  3519.  00h    Command            CR (see #P0631)
  3520.  01h    physical address reg.0    PAR0
  3521.  02h    physical address reg.1    PAR1
  3522.  03h    physical address reg.2    PAR2
  3523.  04h    physical address reg.3    PAR3
  3524.  05h    physical address reg.4    PAR4
  3525.  06h    physical address reg.5    PAR5
  3526.  07h    current page reg.    CURR
  3527.  08h    multicast address reg.0 MAR0
  3528.  09h    multicast address reg.1 MAR1
  3529.  0Ah    multicast address reg.2 MAR2
  3530.  0Bh    multicast address reg.3 MAR3
  3531.  0Ch    multicast address reg.4 MAR4
  3532.  0Dh    multicast address reg.5 MAR5
  3533.  0Eh    multicast address reg.6 MAR6
  3534.  0Fh    multicast address reg.7 MAR7
  3535. SeeAlso: #P0627,#P0629,#P0630
  3536.  
  3537. (Table P0629)
  3538. Values for NS DP8390C/NS3249C network chipset Page 2 registers:
  3539. Number    Read Register                Write Register
  3540.  00h    Command                CR    Command             CR
  3541.  01h    page start reg.            PSTART    current local DMA addr.0 CLDA0
  3542.  02h    page stop reg.            BPSTOP    current local DMA addr.1 CLDA1
  3543.  03h    remote next packet pointer        remote next packet pointer
  3544.  04h    Tx page start address        TPSR    reserved
  3545.  05h    local next packet pointer        local next packet pointer
  3546.  06h    address counter (upper)            address counter (upper)
  3547.  07h    address counter (lower)            address counter (lower)
  3548.  08h    reserved                reserved
  3549.  09h    reserved                reserved
  3550.  0Ah    reserved                reserved
  3551.  0Bh    reserved                reserved
  3552.  0Ch    Rx configuration reg.        RCR    reserved
  3553.  0Dh    Tx configuration reg.        TCR    reserved
  3554.  0Eh    data configuration reg.        DCR    reserved
  3555.  0Fh    interrupt mask reg.        IMR    reserved
  3556. Note:    this is a diagnostics page, and should never be modfied under normal
  3557.       operation.
  3558. SeeAlso: #P0627,#P0628,#P0630
  3559.  
  3560. (Table P0630)
  3561. Values for NS DP8390C/NS3249C network chipset Page 3 registers:
  3562. Number    Read Register                Write Register
  3563.  00h    Command CR (see #P0631)            Command CR
  3564. Note:    Test Page - should never be modified!
  3565. SeeAlso: #P0627,#P0628,#P0629
  3566.  
  3567. Bitfields for NS DP8390C/NS3249C network chipset command register (00h):
  3568. Bit(s)    Description    (Table P0631)
  3569.  0    software reset command (1=offline, 0=online)
  3570.  1    do not activate NIC after reset command
  3571.  2    start transmision of a packet
  3572.  3-5    remote DMA command
  3573.     000 not allowed
  3574.     001 remote read
  3575.     010 remote write
  3576.     011 send packet
  3577.     1xx abort/complete rmote DMA
  3578.  6-7    page select
  3579.     00 register page 0
  3580.     01 register page 1
  3581.     10 register page 2
  3582.     11 register page 3
  3583. SeeAlso: #P0630
  3584. ----------P036B------------------------------
  3585. PORT 036B - GI1904 Scanner Interface Adapter
  3586. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  3587.       PORT 03ABh, PORT 03EBh
  3588. ----------P036C------------------------------
  3589. PORT 036C - GS-IF Scanner Interface adapter
  3590. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  3591.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  3592. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  3593.       others use this interface
  3594. ----------P03700377--------------------------
  3595. PORT 0370-0377 - FDC 2    (2nd Floppy Disk Controller)    first FDC at 03F0
  3596. Note:    floppy disk controller is usually an 8272, 8272A, NEC765 (or
  3597.       compatible), or an 82072 or 82077AA for perpendicular recording at
  3598.       2.88M
  3599. SeeAlso: PORT 03F0h-03F7h
  3600.  
  3601. 0370  R-  diskette Extra High Density controller board jumpers (AT)
  3602. 0370  R-  diskette controller status A (PS/2, PS/2 model 30)
  3603. 0371  R-  diskette controller status B (PS/2, PS/2 model 30)
  3604. 0372  -W  diskette controller DOR (Digital Output Register)
  3605. 0374  R-  diskette controller main status register
  3606. 0374  -W  diskette controller datarate select register
  3607. 0375  RW  diskette controller command/data register
  3608. 0376  RW  (2nd FIXED disk controller status/data register)
  3609. 0377  RW  (2nd FIXED disk controller drive address register)
  3610. 0377  R-  diskette controller DIR (Digital Input Register)
  3611. 0377  -W  select register for diskette data transfer rate
  3612. ----------P0378------------------------------
  3613. PORT 0378 - Covox 'Speech Thing' COMPATIBLE SPEECH OUTPUT
  3614. SeeAlso: PORT 022Fh"mc-soundmachine",PORT 0388h-038Fh"soundmachine"
  3615.  
  3616. 0378  -W  speech output via printer port
  3617.       (with mc-soundmachine, enabled if bit4=1 in 38F)
  3618. ----------P0378037A--------------------------
  3619. PORT 0378-037A - PARALLEL PRINTER PORT (usually LPT2, sometimes LPT3)
  3620. Range:    usually PORT 03BCh, PORT 0278h, or PORT 0378h
  3621. SeeAlso: MEM 0040h:000Ah,INT 17/AH=00h
  3622.  
  3623. 0378  -W  data port
  3624. 0379  R-  status port (see #P0658 at PORT 03BCh)
  3625. 037A  RW  control port (see #P0659 at PORT 03BCh)
  3626.  
  3627. 037B  ??  bit 7: shadow RAM on/off (UniRAM adapter,according to c't 7/90)
  3628. ----------P0378037F--------------------------
  3629. PORT 0378-037F - Intel 82360SL/82091AA - EPP-mode PARALLEL PORT
  3630. Range:    PORT 0278h or PORT 0378h
  3631. SeeAlso: PORT 0278h"LPT1",PORT 0778h"ECP"
  3632.  
  3633. 0378-037A    as for standard parallel port
  3634. 037B  RW  address strobe
  3635. 037C  RW  data strobe 0
  3636. 037D  RW  data strobe 1
  3637. 037E  RW  data strobe 2
  3638. 037F  RW  data strobe 3
  3639. ----------P037C037F--------------------------
  3640. PORT 037C-037F - C&T F87000 Multi-Mode Peripheral Chip - OUTPUT PORTS
  3641.  
  3642. 037C  -W  outputs driven to keyboard outputs COL7-COL0
  3643. 037C  R-  inputs driven by keyboard pins ROW7-ROW0
  3644. 037D  -W  outputs driven to keyboard outputs COL15-COL8
  3645. 037E  -W  outputs driven to pins P2[7-1]; bit 0 enables UART clock when low
  3646. 037F  -W  external output port
  3647. ----------P0380038F--------------------------
  3648. PORT 0380-038F - 2nd BSC (Binary Synchronous Communication) adapter
  3649. SeeAlso:  PORT 03A0h"BSC"
  3650. ----------P0380038C--------------------------
  3651. PORT 0380-038C - 2nd SDLC (Synchronous Data Link Control) adapter
  3652. Notes:    Initialization of the SDLC adapter is performed in a typical
  3653.       sequence like this: Setup 8255 port A-C configuration by writing
  3654.       98h to 383h, followed by initializing 8255 port C by writing 0Dh
  3655.       to 382h. Reset 8273 internal registers by pulsing 8255 port B4.
  3656.       After this the 8253 has to be programmed to the desired values
  3657.       (counter 0 in mode 3). Now the 8273 is ready to be configured for
  3658.       the operating mode that defines the communication environment in
  3659.       which it will be used.
  3660.     Note on 8273: Each 8273 protocol controllers internal register is
  3661.       programmed by individual set/reset commands (via 388h) in
  3662.       conjunction with a parameter (via 389h) that give an OR/AND mask
  3663.       to the internal register value.
  3664.       Although the 8273 is a full duplex device, there is only one
  3665.       command register. Thus, the command register must be used for
  3666.       only one command sequence at a time and the transmitter and
  3667.       receiver may never be simultaneously in a command phase.
  3668.       The system software starts the command phase by writing a command
  3669.       byte into the command register. If further information is required
  3670.       by the 8273 prior to execution of the command, the system software
  3671.       must write the list of parameters into the parameter register.
  3672. SeeAlso: PORT 03A0h"SDLC"
  3673.  
  3674. 0380  R-   on adapter 8255(A5) port A: internal/external sensing (see #P0632)
  3675. 0381  -W   on adapter 8255(A5) port B: external modem interface (see #P0633)
  3676. 0382  RW   on adapter 8255(A5) port C: internal control (see #P0634)
  3677. 0383  ?W   on adapter 8255(A5) mode initialization
  3678. 0384  RW   on adapter 8253 (programmable counter) counter 0:
  3679.         LSB / MSB square wave generator (input for timer 2, connected
  3680.           to 8255 bitC5)
  3681. 0385  RW   on adapter 8253 counter 1: LSB / MSB inactivity time-outs
  3682.         (connected to 8255 bitA7, IRQ4 level)
  3683. 0386  RW   on adapter 8253 counter 2: LSB / MSB inactivity time-outs
  3684.         (connected to 8255 bitA6, IRQ4 level)
  3685. 0387  ?W   on adapter 8253 mode register (see #P0635)
  3686. 0388  R-   on adapter 8273 status register (see #P0636)
  3687. 0388  -W   on adapter 8273 command register (see #P0637)
  3688. 0389  R-   on adapter 8273 (immediate) result register (see #P0644)
  3689. 0389  -W   on adapter 8273 parameter register
  3690.         Commands issued via PORT 0388h may need additional parameters,
  3691.           which have to be passed through this port (see table).
  3692. 038A  R-   on adapter 8273 transmit INT status (DMA/INT)
  3693. 038A  -W   on adapter 8274 reset
  3694. 038B  R-   on adapter 8273 receive INT status (DMA/INT)
  3695. 038C  -W   on adapter 8273 data: direct program control (DPC)
  3696.       scratch-pad
  3697.  
  3698. Bitfields for SDLC 8255 port A:
  3699. Bit(s)    Description    (Table P0632)
  3700.  7    =1 timer 1 output active
  3701.  6    =1 timer 2 output active
  3702.  5    =1 modem status changed
  3703.  4    receive clock active (if pulsing)
  3704.  3    =0 clear to send is on from interface
  3705.  2    transmit clock active (if pulsing)
  3706.  1    =0 data carrier detect is on from interface
  3707.  0    =0 ring indicator is on from interface
  3708. SeeAlso: #P0633,#P0634
  3709.  
  3710. Bitfields for SDLC 8255 port B:
  3711. Bit(s)    Description    (Table P0633)
  3712.  7    enable IRQ 4 level interrupt
  3713.  6    =1 gate timer 1
  3714.  5    =1 gate timer 2
  3715.  4    =1 reset 8273
  3716.  3    =1 reset modem status changed logic
  3717.  2    =0 turn on test
  3718.  1    =0 turn on select standby at modem interface
  3719.  0    =0 turn on data signal rate select at modem interface
  3720. SeeAlso: #P0632,#P0634
  3721.  
  3722. Bitfields for SDLC 8255 port C:
  3723. Bit(s)    Description    (Table P0634)
  3724.  7 R-    =? not used (detection: =1 SDLC, =0 may be SDLC or BSC??)
  3725.  6 R-    =0 test indicate active
  3726.  5 R-    timer 0 output (if pulsing)
  3727.  4 R-    receive data (if pulsing)
  3728.  3 -W    =0 gate interrupts 3 and 4
  3729.  2 -W    =1 electronic wrap
  3730.  1 -W    =1 gate external clock
  3731.  0 -W    =1 gate internal clock
  3732. SeeAlso: #P0632,#P0633
  3733.  
  3734. Bitfields for SDLC 8253 mode register:
  3735. Bit(s)    Description    (Table P0635)
  3736.  7-6    SC1-SC0     00, 01, 10= select counter 0,1,2; 11=illegal
  3737.  5-4    RL1-RL0     00= couner latching operation
  3738.          01= read/load most significant byte (MSB)
  3739.          10= read/load least significant byte (LSB)
  3740.          11= read/load LSB first, then MSB
  3741.  3-1    M2-M0     000= mode 0
  3742.          001= mode 1
  3743.          x10= mode 2
  3744.          x11= mode 3
  3745.          100= mode 4
  3746.          101= mode 5
  3747.  0    BCD     0= binary counter 16bits
  3748.          1= BCD counter 4 decades
  3749.  
  3750. Bitfields for SDLC 8273 status register:
  3751. Bit(s)    Description    (Table P0636)
  3752.  7    =1 command busy (CBSY)
  3753.  6    =1 command buffer full (CBF)
  3754.  5    =1 command parameter buffer full (CPBF)
  3755.  4    =1 command result buffer full (CRBF)
  3756.  3    =1 Rx interupt (RxINT)
  3757.  2    =1 Tx interupt (TxINT)
  3758.  1    =1 RxINT result available (RxIRA)
  3759.  0    =1 TxINT result available (TxIRA)
  3760. SeeAlso: #P0637
  3761.  
  3762. (Table P0637)
  3763. Values for SDCL 8273 command register:
  3764.  commands:           parameters:    results:   result port: int:
  3765.   A4: set one-bit delay        set mask     -           -    no
  3766.   64: reset one-bit delay   reset mask     -           -    no
  3767.   97: set data transfer        set mask     -           -    no
  3768.   57: reset data transfer   reset mask     -           -    no
  3769.   91: set operating mode    set mask     -           -    no
  3770.   51: reset operating mode  reset mask     -           -    no
  3771.   A0: set serial I/O mode   set mask     -           -    no
  3772.   60: reset serial I/O mode reset mask     -           -    no
  3773.   C0: general receive        B0,B1     RIC,R0,R1,A,C RXI/R   yes
  3774.   C1: selective receive        B0,B1,A1,A2     RIC,RD,R1,A,C RXI/R   yes
  3775.   C5: receive disable        -         -           -    no
  3776.   C8: transmit frame        L0, L1, A, C TIC           TXI/R   yes
  3777.   C9: transmit transparent  L0, L1     TIC           TXI/R   yes
  3778.   CC: abort transmit frame  -         TIC           TXI/R   yes
  3779.   CD: abort transmit        -         TIC           TXI/R   yes
  3780.   22: read 8273 port A        -         port value    result    no
  3781.   23: read 8273 port B        -         port value    result    no
  3782.   A3: set 8273 port A bit   set mask     -           -    no
  3783.   63: set 8273 port B bit   reset mask     -           -    no
  3784. Notes:    B0/B1 LSB/MSB of the receiver buffer length
  3785.     L0/L1 LSB/MSB of the Tx buffer length
  3786.     A1/A2 receive frame address match field one/two
  3787.     A     address fieldof received frame. In non-buffered mode, this
  3788.           result is not provided.
  3789.     C     control field of received frame. In non-buffered mode, this
  3790.           result is not provided.
  3791.     RXI/R TXI/R receive/transmit interrupt result register
  3792.     R0/R1 LBS/MSB of the length of the frame received
  3793.     RIC/TIC receiver/transmitter interrupt result code
  3794. SeeAlso: #P0638,#P0639,#P0640,#P0641,#P0642,#P0643
  3795.  
  3796. Bitfields for SDLC 8273 interal port A: Modem Control Input Port:
  3797. Bit(s)    Description    (Table P0638)
  3798.  7-5    not used
  3799.  4    DSR change (PA4)
  3800.  3    CTS change (PA3)
  3801.  2    Data Set Ready (PA2)
  3802.  1    Carrier Detect (PA1)
  3803.  0    Clear to Send (PA0)
  3804. SeeAlso: #P0637
  3805.  
  3806. Bitfields for SDLC 8273 interal port B: Modem Control Output Port:
  3807. Bit(s)    Description    (Table P0639)
  3808.  7-6    not used
  3809.  5    Flag Detect (PB5)
  3810.  4-3    reserved
  3811.  2    Data Terminal Ready (PB2)
  3812.  1    reserved (PB1)
  3813.  0    Request to Send (PB0)
  3814. SeeAlso: #P0637
  3815.  
  3816. Bitfields for SDLC 8273 internal: Operating Mode Register:
  3817. Bit(s)    Description    (Table P0640)
  3818.  7-6    not used
  3819.  5    =1 HDLC abort enable
  3820.  4    =1 EOP interrupt enable
  3821.  3    =1 enable early Tx interrupt
  3822.  2    =1 Buffered Mode
  3823.  1    =1 Two Preframe Sync Characters
  3824.  0    =1 Flag Stream Mode
  3825. SeeAlso: #P0637
  3826.  
  3827. Bitfields for SDLC 8273 internal: Serial I/O Register:
  3828. Bit(s)    Description    (Table P0641)
  3829.  7-3    not used
  3830.  2    =1 Data Loopback
  3831.  1    =1 Clock Loopback
  3832.  0    =1 NRZI Mode
  3833. SeeAlso: #P0637
  3834.  
  3835. Bitfields for SDLC 8273 internal: Data Transfer Mode Register:
  3836. Bit(s)    Description    (Table P0642)
  3837.  7-1    not used
  3838.  0    =1 Interrupt Data Transfers
  3839. SeeAlso: #P0637
  3840.  
  3841. Bitfields for SDLC 8273 internal: One-Bit Delay Mode Register:
  3842. Bit(s)    Description    (Table P0643)
  3843.  7 =1    One-Bit Delay Enable
  3844.  6-0    not used
  3845. SeeAlso: #P0637
  3846.  
  3847. (Table P0644)
  3848. Values for SDLC 8273 result register:
  3849.  transmit result codes:         status after interrupt:
  3850.   0C: early transmit interrupt      transmitter active
  3851.   0D: frame transmit complete      idle or flags
  3852.   0E: DMA underrun          abort
  3853.   0F: clear to send error      abort
  3854.   10: abort complete          idle or flags
  3855.  receive result codes:
  3856.   X0: A1 match / general receive  active
  3857.   X1: A2 match              active
  3858.   03: CRC error              active
  3859.   04: abort detected          active
  3860.   05: idle detected          disabled
  3861.   06: EOP detected          disabled
  3862.   07: frame less than 32 bits      active
  3863.   08: DMA overrun          disabled
  3864.   09: memory buffer overflow      disabled
  3865.   0A: carrier detect failure      disabled
  3866.   0B: receiver interrupt overrun  disabled
  3867.  X bits received inlast byte:
  3868.    E: all eight bits of last byte (bit7-0)
  3869.    0: bit0 only
  3870.    8: bit1-0
  3871.    4: bit2-0
  3872.    C: bit3-0
  3873.    2: bit4-0
  3874.    A: bit5-0
  3875.    6: bit6-0
  3876. --------s-P03840387--------------------------
  3877. PORT 0384-0387 - Pro Audio Spectrum 16 (PAS16)
  3878. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  3879.       PORT 0388h (default), or PORT 038Ch
  3880. ----------P03880389--------------------------
  3881. PORT 0388-0389 - AdLib - MONO SOUND OUTPUT
  3882. Note:    also supported by SoundBlaster and compatibles
  3883. SeeAlso: PORT 0220h-0223h,PORT 0388h-038Fh"soundmachine"
  3884.  
  3885. 0388  R-  both speakers -- Status
  3886.         bit7  : interrupt request (IRQ)
  3887.         bit6  : timer 1 overflow
  3888.         bit5  : timer 2 overflow
  3889.         bit4-0: reserved
  3890. 0388  -W  both speakers -- Address port (see #P0645)
  3891.     index in OPL2 (YMF3812), OPL3 (YMF262), OPL4 (YF278-F)
  3892. 0389  -W  data port
  3893. Note:    the AdLib requires a delay of 3.3 microseconds between writing to
  3894.       PORT 0388h and writing to PORT 0389h, and a delay of 23 microseconds
  3895.       after a write to PORT 0389h before any other operation is allowed
  3896.  
  3897. (Table P0645)
  3898. Values for AdLib address port index:
  3899.  01h    Enable waveform control
  3900.     bit 7-6: (OPL4, OPL3 in OPL2 mode only) lsi test
  3901.     bit 5: (OPL2 only) wave select enable (WS)
  3902.            (OPL4, OPL3) lsi test
  3903.     bit 4-0: lsi test
  3904.  02h    Timer #1 data (OPL2 and OPL3 in OPL2 mode only)
  3905.  03h    Timer #2 data (OPL2 and OPL3 in OPL2 mode only)
  3906.  04h    Timer control flags (OPL2 and OPL3 in OPL2 mode only)
  3907.     bit 7  : reset interrupt (RST)
  3908.     bit 6  : timer 1 mask (MASK1)
  3909.     bit 5  : timer 2 mask (MASK2)
  3910.     bit 4-2: reserved
  3911.     bit 1  : start timer 2 (ST2)
  3912.     bit 0  : start timer 1 (ST1)
  3913.  04h    (OPL3 in OPL3 mode only) connection select
  3914.     bit 7-6: reserved
  3915.     bit 5-0: connection selection
  3916.  05h    (OPL3) compatibility register
  3917.     bit 7-1: reserved
  3918.     bit 0: enable OPL3 mode (NEW), default disabled
  3919.  08h    Speech synthesis mode
  3920.     bit 7: (OPL2 only) speech synthesis or FM music mode (CSM)
  3921.     bit 6: select keyboard split point (SEL/NTS)
  3922.     bit 5-0: reserved
  3923.  20h-35h Amplitude Modulation / Vibrato
  3924.     bit 7: AM modulation (AM)
  3925.     bit 6: vibrato (VIB)
  3926.     bit 5: sustain (EG)
  3927.     bit 4: keyboard scaling rate (KSR)
  3928.     bit 3-0: multi (MF)
  3929.  40h-55h Level key scaling / Total level
  3930.     bit 7-6: key scale level (KSL)
  3931.     bit 5-0: total level (TL)
  3932.  60h-75h Attack / Decay rate
  3933.     bit 7-4: attack rate
  3934.     bit 3-0: decay rate
  3935.  80h-95h Sustain / Release rate
  3936.     bit 7-4: sustain level
  3937.     bit 3-0: release rate
  3938.  A0h-A8h Octave / Frequency (LSB)
  3939.  A9h-AFh ???
  3940.  B0h-B8h Octave / Frequency Number
  3941.     bit 7-6: reserved
  3942.     bit 5  : key on, mute
  3943.     bit 4-2: block, octave
  3944.     bit 1-0: f-number (MSB)
  3945.  BDh    percussion, vibrato, AM    (OPL2, OPL3 in OPL2 mode only)
  3946.     bit 7: amplitude modulation (AM)
  3947.     bit 6: vibrato (VIB)
  3948.     bit 5: ryhthm, percussion on/off (R)
  3949.     bit 4: bass drum on/off (BD)
  3950.     bit 3: snare drum on/off (SD)
  3951.     bit 2: tom-tom on/off (TOM)
  3952.     bit 1: top cymbal on/off (TC)
  3953.     bit 0: hi hat on/off (HH)
  3954.  C0h-C8h Feedback / Algorithm
  3955.     bit 7-4: OPL3: channel D-A
  3956.     bit 3-1: feedback
  3957.     bit 0: connection
  3958.  E0h-F5h Waveform Selection
  3959.     bit 7-3: reserved
  3960.     bit 2  : (OPL3) waveform bit2
  3961.     bit 1-0: waveform
  3962. SeeAlso: #P0646
  3963.  
  3964. (Table P0646)
  3965. Values for Sound Blaster registers inside groups:
  3966. Offset
  3967.  +00..+02: operators 1-3    modulator channel 1-3
  3968.  +03..+05: operators 4-6    carrier channel 1-3
  3969.  +08..+0A: operators 7-9    modulator channel 4-6
  3970.  +0B..+0D: operators 10-12  carrier channel 4-6
  3971.  +10..+12: operators 13-15  modulator channel 7-9
  3972.  +13..+15: operators 16-18  carrier channel 7-9
  3973.  +06, +07, +0E, +0F: reserved
  3974. SeeAlso: #P0645
  3975. ----------P03880389--------------------------
  3976. PORT 0388-0389 - Soundblaster PRO FM-Chip
  3977. ----------P0388038B--------------------------
  3978. PORT 0388-038B - Soundblaster 16 ASP FM-Chip
  3979. --------s-P0388038B--------------------------
  3980. PORT 0388-038B - Pro Audio Spectrum 16 (PAS16)
  3981. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  3982.       PORT 0388h (default), or PORT 038Ch
  3983. ----------P0388038F--------------------------
  3984. PORT 0388-038F - mc-soundmachine, mc 03-04/1992 - SPEECH I/O
  3985. Note:    Adlib-compatible, Covox 'voice master' & 'speech thing' compatible
  3986.       soundcard
  3987. SeeAlso: PORT 022Fh"soundmachine",PORT 0278h"Covox"
  3988.  
  3989. 0388  -W  Covox 'speech thing' compatible speech output via printer port?
  3990.         enabled if bit 6 set in PORT 038Fh
  3991. 0388  RW  Adlib compatible (YM3812), enabled if bit 0 set in PORT 038Fh
  3992.         (see PORT 0388h-0389h"Sound Blaster")
  3993. 0389  -W  Adlib compatible (YM3812), enabled if bit 0 set in PORT 038Fh
  3994.         (see PORT 0388h-0389h"Sound Blaster")
  3995. 038A  -W  I²C control for TDA7302 NF-MUX and X24C04 EEPROM
  3996.         bit 7: I²C bus SDA out (data),  enabled if bit2=1 in PORT 038Fh
  3997.         bit 0: I²C bus SCL out (clock), enabled if bit2=1 in PORT 038Fh
  3998. 038B  R-  I²C status for TDA7302 NF-MUX and X24C04 EEPROM
  3999.         bit 7: I²C bus SDA in (data),  enabled if bit2=1 in PORT 038Fh
  4000.         bit 0: I²C bus SCL in (clock), enabled if bit2=1 in PORT 038Fh
  4001. 038F  RW  configuration port (power on default=0, all features disabled)
  4002.     (see #P0647)
  4003.  
  4004. Bitfields for mc-soundmachine configuration port:
  4005. Bit(s)    Description    (Table P0647)
  4006.  7    Covox 'voice master' enabled at PORT 022Fh
  4007.  6     ""   'speech thing' enabled at PORT 03BCh
  4008.  5     ""             enabled at PORT 0278h
  4009.  4     ""             enabled at PORT 0378h
  4010.  3    not used (0388???)
  4011.  2    I²C bus enabled (see PORT 038Ah,PORT 038Bh)
  4012.  1    gameport enabled (see PORT 0201h)
  4013.  0    AdLib registers (see PORT 0388h,PORT 0389h) enabled
  4014. --------s-P038C038F--------------------------
  4015. PORT 038C-038F - Pro Audio Spectrum 16 (PAS16)
  4016. Range:    PORT 0280h, PORT 0284h, PORT 0288h, PORT 028Ch, PORT 384h,
  4017.       PORT 0388h (default), or PORT 038Ch
  4018. ----------P03900397--------------------------
  4019. PORT 0390-0397 - Sunshine EW-901B, EW-904B
  4020.         EPROM writer card for EPROMs up to 27512
  4021. 0390-0393  ??  adresses of the 8255 on the EW-90xB
  4022. ----------P0390039F--------------------------
  4023. PORT 0390-039F - Cluster adapter (AT)
  4024.  
  4025. 0390  ??  (adapter 0)    (XT)
  4026. 0391  ??  (adapter 0)    (XT)
  4027. 0392  ??  (adapter 0)    (XT)
  4028. 0393  ??  (adapter 0)    (XT)
  4029. ----------P03980399--------------------------
  4030. PORT 0398-0399 - Dell Enhanced Parallel Port
  4031. SeeAlso: PORT 002Eh,PORT 015Ch,PORT 026Eh
  4032.  
  4033. 0398  -W  index for data port
  4034. 0399  RW  EPP command data
  4035. ----------P03980399--------------------------
  4036. PORT 0398-0399 - Intel 82091AA Advanced Integrated Peripheral
  4037. Range:    PORT 0022h (X-Bus), PORT 0024h (X-Bus), PORT 026Eh (ISA), or
  4038.       PORT 0398h (ISA)
  4039. SeeAlso: PORT 0022h"82091AA",PORT 0024h"82091AA",PORT 026Eh"82091AA"
  4040.  
  4041. 0398  ?W  configuration register index
  4042. 0399  RW  configuration register data
  4043. ----------P03A003AC--------------------------
  4044. PORT 03A0-03AC - 1st SDLC (Binary Synchronous Data Link Control adapter)
  4045. SeeAlso: PORT 0380h"SDLC"
  4046. ----------P03A003AF--------------------------
  4047. PORT 03A0-03AF - 1st BSC (Binary Synchronous Communication) adapter
  4048. Notes:    Initialization of the BSC adapter is performed in a typical
  4049.       sequence like this: Setup 8255 port A-C configuration by writing
  4050.       98h to 383h, followed by initializing 8255 port C by writing 0Dh
  4051.       to 382h. Reset 8251A internal registers by pulsing 8255 port B4.
  4052.       After this the 8253 has to be programmed to the desired values
  4053.       (counter 0 not used, counters 1 and 2 to mode 0). Now, the 8251A
  4054.       is ready to be loaded with a set of control words that define the
  4055.       communication environment.
  4056.     8251A: The control words are split into two formats, mode
  4057.       instruction and command instruction. The mode instruction must
  4058.       be inserted immediately after a reset operation (via 8255 port B4
  4059.       or setting command instruction bit6 to 'internal reset').
  4060.       The required synchronization characters are next loaded into the
  4061.       8251A (usually 32h for BSC). All control words written to the
  4062.       8251A after this will load the command instruction.
  4063.          reset -> mode instruction
  4064.               SYNC character 1
  4065.               SYNC character 2
  4066.               command instruction
  4067.               data ...
  4068.               command instruction
  4069.               data ...
  4070.               command instruction
  4071.               ...
  4072. SeeAlso: PORT 0380h"BSC"
  4073.  
  4074. 03A0  R-   on adapter 8255(A5) port A: internal/external sensing (see #P0648)
  4075. 03A1  -W   on adapter 8255(A5) port B: external modem interface (see #P0649)
  4076. 03A2  RW   on adapter 8255(A5) port C: internal control (see #P0650)
  4077. 03A3  ?W   on adapter 8255(A5) mode initialization
  4078. 03A4  RW   on adapter 8253 (programmable counter) counter 0:
  4079.         LSB / MSB square wave generator (unused in sync mode)
  4080. 03A5  RW   on adapter 8253 counter 1: LSB / MSB inactivity time-outs
  4081.         (connected to 8255 bitA7, IRQ4 level)
  4082. 03A6  RW   on adapter 8253 counter 2: LSB / MSB inactivity time-outs
  4083.         (connected to 8255 bitA6, IRQ4 level)
  4084. 03A7  ?W   on adapter 8253 mode register (see #P0651)
  4085. 03A8  RW   on adapter 8251: data (see #P0652)
  4086. 03A9  R-   on adapter 8251: command/mode/USART status register (see #P0653)
  4087.  
  4088. Bitfields for BSC 8255 port A:
  4089. Bit(s)    Description    (Table P0648)
  4090.  7    =1 timer 1 output active
  4091.  6    =1 timer 2 output active
  4092.  5    =1 TxRDY active
  4093.  4    receive clock active (if pulsing)
  4094.  3    =0 clear to send is on from interface
  4095.  2    transmit clock active (if pulsing)
  4096.  1    =0 data carrier detect is on from interface
  4097.  0    =0 ring indicator is on from interface
  4098. SeeAlso: #P0649
  4099.  
  4100. Bitfields for BSC 8255 port B:
  4101. Bit(s)    Description    (Table P0649)
  4102.  7    =1 enable IRQ 4 level interrupt (timer 1 and 2)
  4103.  6    =1 gate timer 1
  4104.  5    =1 gate timer 2
  4105.  4    =1 reset 8251A
  4106.  3    =1 not used
  4107.  2    =0 turn on test
  4108.  1    =0 turn on select standby
  4109.  0    =0 turn on data signal rate select
  4110. SeeAlso: #P0648,#P0650
  4111.  
  4112. Bitfields for BSC 8255 port C:
  4113. Bit(s)    Description    (Table P0650)
  4114.  7 R-    =0 BSC adapter (=1 may be used to detect SDLC??)
  4115.  6 R-    =0 test indicate active
  4116.  5 R-    timer 0 output (if pulsing)
  4117.  4 R-    receive data (if pulsing)
  4118.  3 -W    =0 enable timer 1 and 2 IRQ4 and receive IRQ 4
  4119.  2 -W    =1 electronic wrap
  4120.  1 -W    =1 gate external clock
  4121.  0 -W    =1 gate internal clock
  4122. SeeAlso: #P0648,#P0649
  4123.  
  4124. Bitfields for BSC 8253 mode register:
  4125. Bit(s)    Description    (Table P0651)
  4126.  7-6    SC1-SC0     00, 01, 10= select counter 0,1,2; 11=illegal
  4127.  5-4    RL1-RL0     00= couner latching operation
  4128.          01= read/load most significant byte (MSB)
  4129.          10= read/load least significant byte (LSB)
  4130.          11= read/load LSB first, then MSB
  4131.  3-1    M2-M0     000= mode 0 (for counter 1 and 2)
  4132.          001= mode 1 (not used for BSC)
  4133.          x10= mode 2 (not used for BSC)
  4134.          x11= mode 3 (not used for BSC)
  4135.          100= mode 4 (not used for BSC)
  4136.          101= mode 5 (not used for BSC)
  4137.  0    BCD       0= binary counter 16bits
  4138.            1= BCD counter 4 decades
  4139.  
  4140. Bitfields for BSC 8251 data:
  4141. Bit(s)    Description    (Table P0652)
  4142. ---mode instruction (W)---
  4143.  7    =0 Double SYNC Character
  4144.  6    =1 SYNDET is an Input
  4145.  5    =1 Even Parity
  4146.  4    =1 Parity Enable
  4147.  3-2    Character Length 00=5bits, 01=6bits, 10=7bits, 11=8bits
  4148.  1-0    not used (always 0)
  4149. ---SYNC character 1/2 (W)---
  4150.  string of two characters to be sync'ed at (in hunt mode).
  4151. ---command instruction (W)---
  4152.  7    Enter Hunt Mode
  4153.  6    Internal Reset
  4154.  5    Request to Send
  4155.  4    Error Reset
  4156.  3    Send Break Character
  4157.  2    Receive Enable
  4158.  1    Data Terminal Ready
  4159.  0    Transmit Enable
  4160. ---data (RW)---
  4161.     any data
  4162. SeeAlso: #P0651,#P0653
  4163.  
  4164. Bitfields for BSC 8251 command/mode/USART status:
  4165. Bit(s)    Description    (Table P0653)
  4166.  7    Data Set Ready (indicated that DSR is at 0 level)
  4167.  6    SYNDET
  4168.  5    Framing Error (not used for synchronous communications)
  4169.  4    Overrun Error (OE flag on when Overrun Error occurs)
  4170.  3    Parity Error (PE flag on when a parity error occurs)
  4171.  2    TxEmpty
  4172.  1    RxRDY (causing IRQ 3 level)
  4173.  0    TxRDY (has not the same meaning as 8251A TxRDY output pin).
  4174.       THIS one is NOT conditioned by CTS and TxEnable (causing IRQ 4 level)
  4175. SeeAlso: #P0652
  4176. ----------P03AB------------------------------
  4177. PORT 03AB - GI1904 Scanner Interface Adapter
  4178. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  4179.       PORT 036Bh, PORT 03ABh, PORT 03EBh
  4180. ----------P03AC------------------------------
  4181. PORT 03AC - GS-IF Scanner Interface adapter
  4182. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  4183.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  4184. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  4185.       others use this interface
  4186. --------V-P03B003BF--------------------------
  4187. PORT 03B0-03BF - MDA  (Monochrome Display Adapter based on 6845)
  4188.  
  4189. 03B0  -W  same as 03B4
  4190. 03B1  RW  same as 03B5
  4191. 03B2  -W  same as 03B4
  4192. 03B3  RW  same as 03B5
  4193. 03B4  -W  MDA CRT index register     (MDA/mono EGA/mono VGA)
  4194.         selects which register (0-11h) is to be accessed through 03B5h
  4195.         Note: this port is read/write on some VGAs
  4196.         bit7-6: (VGA) reserved (0)
  4197.         bit5  : (VGA) reserved for testing (0)
  4198.         bit4-0: selects which register is to be accessed through 03B5h
  4199. 03B5  RW  MDA CRT data register     (MDA/mono EGA/mono VGA) (see #P0654,#P0708)
  4200.         selected by PORT 03B4h. registers 0C-0F may be read
  4201.         Color adapters are at 3D4/3D5, but are mentioned here for
  4202.           better overview.
  4203.         There are differences in names and some bits functionality
  4204.           on EGA, VGA in their native modes, but clones in their
  4205.           emulation modes emulate the original 6845 at bit level. The
  4206.           default values are for MDA, HGC, CGA only, if not otherwise
  4207.           mentioned.
  4208. 03B6  -W  same as 03B4h
  4209. 03B7  RW  same as 03B5h
  4210. 03B8  rW  MDA mode control register (see #P0655)
  4211. 03B9  ?W  reserved for color select register on color adapter
  4212. 03B9  -W  MDA/HGC: set lightpen flipflop (value written is ignored)
  4213.         cannot be found on native mono EGA, mono VGA (without
  4214.           translation ROM)
  4215. 03BA  R-  CRT status register (see #P0656)
  4216.         (EGA/VGA) input status 1 register
  4217. 03BA  -W  (mono EGA/mono VGA) feature control register
  4218.         (see PORT 03DAh-W for details; VGA, see PORT 03CAh-R)
  4219. 03BB  -W  light pen strobe reset (on any value)
  4220.  
  4221. (Table P0654)
  4222. Values for mono video adapter CRT data register index:
  4223.                   defaults:    MDA/HGC    HGC   CGA   CGA      CGA
  4224.                          text  graph text1 text2 graph
  4225.                            7  720x348  1     3      5,6
  4226.  00h    horizontal total              61h    35h   38h   71h      38h
  4227.           ET4000: in VGA mode scanlines-5
  4228.               in EGA mode scanlines-2
  4229.  01h    horizontal displayed              50h    2Dh   28h   50h      28h
  4230.           horizontal display end-1 (EGA,VGA)
  4231.  02h    horizontal sync position          52h    2Eh   2Dh 5Ah/5Ch 2Dh
  4232.  03h    sync pulse width              0Fh 07h/0Fh 0Ah   0Ah      0Ah
  4233.            bit7-4 vsync, bit3-0 hsync
  4234.           end horizontal blanking (EGA,VGA)
  4235.            VGA    : bit7=1      : enable read access to regs
  4236.                     10h, 11h (otherwise VGA clones
  4237.                     may show lightpen values)
  4238.            EGA,VGA: bit6-5=0-3: display enable skew control
  4239.             bit4-0      : end blanking
  4240.  04h    vertical total (vcycle-1)          19h    5Bh   1Fh   1Fh      7Fh
  4241.            bit7 only used on MCGA
  4242.           start horizontal retrace (EGA, VGA)
  4243.           Genoa SuperEGA only???:
  4244.            bit7  : start at odd memory address
  4245.            bit6-5: horizontal sync skew
  4246.            bit4-0: start retrace+ retrace width
  4247.  05h    vertical total adjust              06h    02h   06h   06h      06h
  4248.            bit7-5 only used on MCGA
  4249.           end horizontal retrace (EGA, VGA)
  4250.            bit7  : (EGA) start at odd memory address
  4251.                (VGA) bit5 of end horizontal retrace
  4252.            bit6-5: horizontal sync skew
  4253.            bit4-0: end horizontal retrace
  4254.  06h    vertical displayed              19h    57h   19h   19h      64h
  4255.            bit7 only used on MCGA
  4256.           (EGA) vertical total-1
  4257.           (VGA) vertical total-2
  4258.  07h    vertical sync pulse width-1          19h    57h   1Ch   1Ch 70h/66h
  4259.            bit7  only used on MCGA
  4260.           controller overflow (EGA,VGA)
  4261.            bit7: (VGA) bit9 of start vertical retrace (10h)
  4262.            bit6: (VGA) bit9 of vertical display end (12h)
  4263.            bit5: (VGA) bit9 of vertical total (06h)
  4264.              (EGA) bit5 of cursor-position (0Ah)
  4265.            bit4: bit8 of line compare (18h)
  4266.            bit3: bit8 of start vertical blanking (15h)
  4267.            bit2: bit8 of vertical retrace start (10h)
  4268.            bit1: bit8 of vertical display end (12h)
  4269.            bit0: bit8 of vertical total (06h)
  4270.  08h    interlace mode (not MCGA)          02h    02h   02h   02h      02h
  4271.            bit7-2: reserved
  4272.            bit1  : delay
  4273.            bit0=1: interlace on
  4274.           preset row scan (EGA, VGA)
  4275.            bit7  : reserved
  4276.            bit6-5: (VGA) byte panning (low-order bits of display start addr
  4277.           in odd/even and quad modes
  4278.            bit4-0: start row scan after retrace
  4279.  09h    maximum scan lines              0Dh    03h   07h   07h      01h
  4280.            bit7  : (VGA) double scan active
  4281.            bit6  : (VGA) bit9 of line compare (18h)
  4282.            bit5  : (VGA) bit9 of start vertical blanking (15h)
  4283.            bit4-0: maximum scan line 00..31 (height-1)
  4284.  0Ah    cursor start                  0Bh    00h   06h   06h 06h/00h
  4285.            bit7  : reserved
  4286.            bit6-5: original 6845: cursor on/off, blink interval
  4287.                (not on all adapters, as original MDA, CGA have
  4288.                extra circuitrity to avoid this!!)
  4289.            bit6-5: native EGA: not used
  4290.            bit6  : (VGA) not used
  4291.            bit5=0: (VGA) cursor on
  4292.            bit4-0: first cursor scanline
  4293.  0Bh    cursor end                  0Ch    00h   07h   07h 07h/00h
  4294.            bit7  : reserved
  4295.            bit6-5: EGA, VGA: cursor skew control
  4296.            bit4-0: end cursor row
  4297.  0Ch RW    start address high              00h    00h   00h   00h      00h
  4298.            bit7-6 not used by original 6845 (MDA,HGC,CGA)
  4299.  0Dh RW    start address low              00h    00h   00h   00h      00h
  4300.  0Eh RW    cursor location high              00h    00h   00h   00h      00h
  4301.            bit7-4 not used by original 6845 (MDA,HGC,CGA)
  4302.            bit5-4 reserved on MCGA
  4303.  0Fh RW cursor location low              00h    00h   00h   00h      00h
  4304.  10h R-    light pen high (MDA/CGA/EGA only, some HGC, few VGA
  4305.            clones in emulation, not with ET4000)
  4306.  10h R- MCGA at 3D5h only: mode control status register (see #P0711)
  4307.  11h R- light pen low (MDA/CGA/EGA only, some HGC, few VGA
  4308.            clones in emulation, not with ET4000)
  4309.  14h -W HGC+,InColor: xMode register
  4310.  15h -W HGC+,InColor: underscore register
  4311.  16h -W HGC+,InColor: overstrike register
  4312.  17h -W    InColor: exception register
  4313.  18h -W    InColor: plane mask register
  4314.  19h -W    InColor: read/write control register
  4315.  1Ah -W    InColor: read/write color register
  4316.  1Bh -W    InColor: Latch Protect register
  4317.  1Ch RW    InColor: palette register
  4318. Notes:    registers 10h and 11h have varying uses on VGA (see #P0708) and
  4319.       MCGA (see #P0710)
  4320.     MDA, HGC, CGA: 6845 registers 00h-0Dh are write only, 0Eh, 0Fh
  4321.            are r/w, and 10h-11h are read only.
  4322.            The alternative initial defaults may be used
  4323.            sometimes on modern adapters.
  4324.     HGC+(RamFont): as with HGC, but 3 additional registers for font control
  4325.     emulations   : more registers may be r/w, but most often it's the
  4326.            same as with native 6845.
  4327.     MCGA (CGA+)  : Though this is a mixture of CGA and VGA, most
  4328.            registers are same as with CGA, but with some
  4329.            enhancements and incompatibilities to EGA, VGA.
  4330.     native EGA   : registers 00h-0Bh are write only, 0Ch-0Fh are
  4331.            r/w, 10h-11h are read/write, 12h-18h are write
  4332.            only. More regs may be r/w on enhanced clones.
  4333.     GenoaSuperEGA: adapter with chips SEQCRT GN006001 and GRAT
  4334.            GN006002, e.g. c't Super-EGA adapter. Is EGA
  4335.            clone with up to 800x600 and full 6845 emulation.
  4336.     native VGA   : all registers 00-18h are r/w, but 00h-07h are
  4337.            write-locked if bit7 in 11h is set.
  4338.     ET4000         : same as VGA, but with additional r/w registers
  4339.            32h-37h, protected by 'key' except 33h, 35h
  4340.            (see 3BFh for details). 35h is protected by
  4341.            bit7 in 11h. The 'key' must be issued at least
  4342.            after each power on or synchronous reset.
  4343. SeeAlso: #P0708,#P0710,#P0655,#P0656,#P0710
  4344.  
  4345. Bitfields for mono video adapter mode control register:
  4346. Bit(s)    Description    (Table P0655)
  4347.  7 not used by MDA, page number on HGC
  4348.  6    not used
  4349.  6  R-O    (mono ET4000 only) report status of bit 1 (enable 2nd page) of
  4350.       Hercules compatibility register (PORT 03BFh)
  4351.  5    enable blink (0 = intense background, 1 = blink)
  4352.  4    not used
  4353.  3    video enable
  4354.  2    not used
  4355.  1    (MDA) not used
  4356.     (HGC) graphics enable
  4357.     the 6845 has to be reprogrammed completely, if this bit is
  4358.       changed, otherwise the TTL-monitor may be damaged by wrong
  4359.       sync impulses!
  4360.  0    high resolution mode (always set on MDA)
  4361. ---mono ET4000 only, W-O ---
  4362.  7-0    =A0h: second part of 'key', see Hercules compatibility register
  4363.       (PORT 03BFh) for details
  4364. Note:    this port might be completely or partially readable on very few MDA,
  4365.       HGC clones or emulations (e.g. Genoa SuperEGA), but not with the
  4366.       majority of original and clone chips.     It cannot be found on
  4367.       native mono EGA, mono VGA, but on most clones, where it is usually
  4368.       R/W.
  4369. SeeAlso: #P0654,#P0656
  4370.  
  4371. Bitfields for mono video adapter CRT status register:
  4372. Bit(s)    Description    (Table P0656)
  4373.  7    HGC: vertical sync pulse in progress
  4374.  6-4    adapter identification
  4375.     (MSD says) if bit 7 changes within 8000h reads then
  4376.         =000 adapter is Hercules or compatible
  4377.         =001 adapter is Hercules+
  4378.         =101 adapter is Hercules InColor
  4379.         else: adapter is unknown
  4380.  6-4    =111 on MDA and some HGC clones
  4381.  5-4    (mono EGA, mono ET4000) diagnose video display feedback
  4382.     select from color plane enable
  4383.  3    (MDA,HGC) pixel stream (0=currently black, 1=currently white)
  4384.     (mono EGA, mono VGA) vertical retrace in progress
  4385.  2-1    (MDA) reserved
  4386.  2    (HGC, mono EGA) lightpen flipflop set
  4387.     (mono ET4000) reserved (0)
  4388.  1    (HGC) lightpen input stream (if set, current value to get from
  4389.       PORT 03B5h registers 10h-11h)
  4390.     (mono ET4000) reserved (0)
  4391.  0    horizontal drive enabled
  4392. SeeAlso: #P0654,#P0655
  4393.  
  4394. Bitfields for EGA,VGA mode control register:
  4395. Bit(s)    Description    (Table P0657)
  4396.  7    0=CRTC reset and stop, 1=resume reset
  4397.  6    0=word-mode, 1=byte-mode (VGA: see 14h, bit6)
  4398.  5    0=14bit, 1=16bit address wrap
  4399.  4    (native VGA only) reserved (0)
  4400.  4    (EGA and most VGA clones) output control
  4401.     0: video driver active
  4402.     1: video driver not active
  4403.  3    linear address counter clock (0 = standard, 1 = clock/2)
  4404.     (VGA: see register 14h, bit 5)
  4405.  2    horizontal retrace clock (0 = standard, 1 = clock/2)
  4406.  1    row scan counter
  4407.     0: address bit 14 = scan bit 1
  4408.     1: address bit 14 not altered
  4409.  0    6845 compatibility mode
  4410.     0: address bit 13 = scan bit 0 (as with 6845)
  4411.     1: address bit 13 not altered
  4412. SeeAlso: #P0654
  4413. --------P-P03BC03BF--------------------------
  4414. PORT 03BC-03BF - PARALLEL PRINTER PORT (MDA's LPT1)
  4415. Range:    PORT 0278h, PORT 0378h, or PORT 03BCh
  4416. SeeAlso: MEM 0040h:0008h
  4417.  
  4418. 03BC  -W  data port
  4419. 03BC  R-  bidirectional port: input from connector
  4420.       unidirectional port: last value written to port
  4421. 03BD  R-  status port (see #P0658)
  4422. 03BE  RW  control port (see #P0659)
  4423.  
  4424. Bitfields for parallel interface status port:
  4425. Bit(s)    Description    (Table P0658)
  4426.  7    busy
  4427.  6    NOT acknowledge (approx. 5us low pulse)
  4428.  5    out of paper
  4429.  4    printer is selected
  4430.  3    *no* error
  4431.  2    IRQ has *not* occurred
  4432.     (PS/2) printer returned -ACK
  4433.  1-0    reserved
  4434. Note:    if bit 2 is clear (i.e. an interrupt has occurred), it is set again on
  4435.       reading the status register
  4436. SeeAlso: #P0659
  4437.  
  4438. Bitfields for parallel interface control port:
  4439. Bit(s)    Description    (Table P0659)
  4440.  7-6    reserved
  4441.  7    (see PORT 037Bh bit 7)
  4442.  5    (PS/2) enable bidirectional port
  4443.     (also requires enabling via PORT 0102h)
  4444.  4    enable IRQ (via -ACK)
  4445.  3    select printer (SLCT IN line)
  4446.  2    =0 initialize printer (-RESET line)
  4447.  1    automatic line feed
  4448.  0    strobe (must be set for minimum of 5 microseconds)
  4449. SeeAlso: #P0658
  4450. --------V-P03BF------------------------------
  4451. PORT 03BF - Hercules configuration switch register
  4452. Note:    can also be found on EGA and VGA clones in Hercules emulation
  4453.  
  4454. 03BF  -W  configuration switch register (see #P0660)
  4455. 03BF  -W  (ET4000) Hercules compatibility register (see #P0661)
  4456. 03BF  RW  (Genoa SuperEGA) miscellaneous register
  4457.     Note: only available in MDA, HGC, and CGA emulation; should be
  4458.       compatible with Hercules configuration register, but may contain
  4459.       additional features
  4460.  
  4461. Bitfields for Hercules configuration switch register:
  4462. Bit(s)    Description    (Table P0660)
  4463.  7-2    reserved
  4464.  1    =0  disables upper 32K of graphics mode buffer
  4465.     =1  enables upper 32K of graphics mode buffer
  4466.  0    =0  prevents graphics mode
  4467.     =1  allows graphics mode
  4468. SeeAlso: #P0661
  4469.  
  4470. Bitfields for ET4000 compatibility register:
  4471. Bit(s)    Description    (Table P0661)
  4472.  1    =0 disables upper 32K of graphics mode buffer
  4473.     =1 enables upper 32K of graphics mode buffer
  4474.  0    reserved (not needed for HGC graphics)
  4475.  7-0    =03h: first part of 'key' for access to some extra
  4476.          ET4000 regs. To issue the 'key', the following
  4477.          code must be executed:
  4478.           MOV DX, 3BFh
  4479.           MOV AL, 3
  4480.           OUT DX, AL
  4481.           MOV DX, 3D8h  (3B8h in mono mode)
  4482.           MOV AL, 0A0h
  4483.           OUT DX, AL
  4484. SeeAlso: #P0660
  4485. --------V-P03C003C1--------------------------
  4486. PORT 03C0-03C1 - EGA/VGA - ATTRIBUTE CONTROLLER
  4487. Range:    PORT 03C0h or PORT 02C0h (alternate EGA)
  4488. SeeAlso: PORT 03C2h,PORT 03D0h,#P0718
  4489.  
  4490. 03C0  rW  ATC index/data register
  4491.         Every write access to this register will toggle an internal
  4492.           index/data selection flipflop, so that consecutive writes to
  4493.           index & data is possible through this port. To get a defined
  4494.           start condition, each read access to the input status register
  4495.           #1 (3BAh in mono / 3DAh in color) resets the flipflop to load
  4496.           index. If values are changed during the vertical retrace
  4497.           period only no flicker will occur.
  4498.  
  4499.         index register (flipflop reset to 'index'): (default 20h)
  4500.           bit7-6: reserved
  4501.           bit5    : 0=CPU access (screen dark),
  4502.               1=video access to registers
  4503.           bit4-0: index in ATC (0..31)
  4504.  
  4505.         indexed registers in ATC (flipflop set to 'data'): (see #P0662)
  4506. 03C1  R-  (VGA)    ATC index/data read register
  4507.  
  4508. (Table P0662)
  4509. Values for EGA/VGA indexed registers in ATC:
  4510.  00h-0Fh 16 palette registers (see #P0663)
  4511.  10h    mode control register (see #P0664)
  4512.  11h    (EGA) overscan color register (see #P0665) (default: 00h)
  4513.  11h    (VGA) overscan color register (see #P0666) (default: 00h)
  4514.  12h    color enable register (see #P0667)
  4515.  13h    horizontal pixel panning register
  4516.     bit7-4: reserved
  4517.     bit3-0: horizontal pixel panning
  4518.  14h    (VGA) color select register (default: 00h)
  4519.     bit7-4: reserved
  4520.     bit3  : s-color 7
  4521.     bit2  : s-color 6
  4522.     bit1  : s-color 5 (only with 16 pages á 16 regs)
  4523.     bit0  : s-color 4 (only with 16 pages á 16 regs)
  4524.  16h    ET3000, ET4000 only: ATC miscellanenous
  4525.     (at least on ET4000 'key' protected)
  4526.     This register is also supported by ET3000, but the
  4527.       description is proved for ET4000 only.
  4528.     bit7  : bypass the internal palette
  4529.         (e.g. for HiColor modes with Sierra RAMDACs)
  4530.     bit6  : reserved
  4531.     bit5-4: select high resolution / color mode
  4532.     bit3-0: reserved
  4533. SeeAlso: #P0670,#P0700
  4534.  
  4535. Bitfields for EGA/VGA indexed ATC palette register:
  4536. Bit(s)    Description    (Table P0663)
  4537.  7-6    reserved
  4538.  5    secondary red video
  4539.  4    secondary green/intensity video
  4540.  3    secondary blue/mono video
  4541.  2    primary red video
  4542.  1    primary green video
  4543.  0    primary blue video
  4544. SeeAlso: #P0662
  4545.  
  4546. Bitfields for EGA/VGA ATC mode control register:
  4547. Bit(s)    Description    (Table P0664)
  4548.  7    (VGA) SB/SG select (0=4 pages of 64 regs, 1=16 pages of 16 regs)
  4549.  6    (VGA) PELCLK/2 (0=4bit color, 1=8bit color)
  4550.  5    (VGA) enable pixel panning (0=all, 1=up to line compare register value)
  4551.  4    reserved
  4552.  3    background intensity (0=16 colors, 1=blink)
  4553.  2    line graphics enable (0=background, 1=line 8=9)
  4554.  1    1=mono, 0=color select
  4555.  0    1=graphics, 0=text select
  4556. SeeAlso: #P0662
  4557.  
  4558. Bitfields for EGA overscan color register:
  4559. Bit(s)    Description    (Table P0665)
  4560.  7-6    reserved
  4561.  5    secondary red (SR)
  4562.  4    secondary green (SR) / intensity
  4563.  3    secondary blue (SB)
  4564.  2    primary red (PR)
  4565.  1    primary green (PG)
  4566.  0    primary blue (PB)
  4567. SeeAlso: #P0662,#P0666
  4568.  
  4569. Bitfields for VGA overscan color register:
  4570. Bit(s)    Description    (Table P0666)
  4571.  7    secondary intensity border color (SI)
  4572.  6    secondary red (SR)
  4573.  5    secondary green (SG)
  4574.  4    secondary blue (SB)
  4575.  3    intensity border color (PI)
  4576.  2    primary red (PR)
  4577.  1    primary green (PG)
  4578.  0    primary blue (PB)
  4579. SeeAlso: #P0662,#P0665
  4580.  
  4581. Bitfields for EGA/VGA color enable register:
  4582. Bit(s)    Description    (Table P0667)
  4583.  7-6    reserved
  4584.  5-4    diagnose / video status select
  4585.     EGA:        VGA, ET4000:
  4586.     00b = PR/PB       PR/PB
  4587.     01b = SB/PG       SG/SB
  4588.     10b = SR/SG       PI/PG
  4589.     11b = reserved       SI/SR
  4590.  3    enable plane 3
  4591.  2    enable plane 2
  4592.  1    enable plane 1
  4593.  0    enable plane 0
  4594. SeeAlso: #P0662
  4595. ----------P03C003C7--------------------------
  4596. PORT 03C0-03C7 - Sunshine EW-901, EW-901A, EW-904, EW-904A
  4597. Desc:    EPROM writer card for EPROMs up to 27512
  4598.  
  4599. 03C0-03C3    adresses of the 8255 on the EW-90x
  4600. --------V-P03C203CF--------------------------
  4601. PORT 03C2-03CF - EGA/VGA - MISCELLANEOUS REGISTERS
  4602. Range:    PORT 03C2h or PORT 02C2h (alternate EGA)
  4603. SeeAlso: PORT 03C0h,PORT 03C4h,PORT 03C6h,PORT 03D0h
  4604.  
  4605. 03C2  R-  input status 0 register (see #P0668)
  4606. 03C2  -W  miscellaneous output register (see #P0669)
  4607. 03C3  RW  (VGA)    video subsystem enable (see also PORT 46E8h)
  4608.         for IBM, motherboard VGA only
  4609.              bit7-4=0: reserved
  4610.              bit3     : select video subsystem (address 46E8h)
  4611.              bit2-1     : reserved
  4612.              bit0     : select video subsystem (address 03C3h)
  4613.  
  4614. Bitfields for EGA/VGA input status 0 register:
  4615. Bit(s)    Description    (Table P0668)
  4616.  7    (VGA) vertical retrace interrupt is pending
  4617.     (EGA) =0 vertical retrace in progress
  4618.  6-5    (VGA) reserved (0)
  4619.  6    (EGA and ET4000) feature control 1 (pin17)
  4620.  5    (EGA and ET4000) feature control 0 (pin19)
  4621.  4    (VGA) monitor sense signal is asserted
  4622.  4    (EGA, Genoa SuperEGA) DIP switch sense
  4623.     0=closed, 1=open/switches readable
  4624.  3-0    reserved (0)
  4625.  
  4626. Bitfields for EGA/VGA miscellaneous output register:
  4627. Bit(s)    Description    (Table P0669)
  4628. ---Genoa SuperEGA in all emulation modes---
  4629.  7-6: vertical resolution
  4630.     00 (EGA) 200 lines
  4631.     01 (VGA) 400 lines
  4632.     10 (EGA/VGA) 350 lines
  4633.     11 (VGA) 480 lines
  4634. ------
  4635.  7    vertical sync polarity (0=positive, 1=negative)
  4636.  6    horizontal sync polarity (0=positive, 1=negative)
  4637.  5    odd/even pagebit (=1 select second 64K memory page)
  4638.  4    EGA: 0=video driver on,
  4639.          1=video driver off (feature connector used)
  4640.  3-2    pixelclock
  4641.     00 14/25.175 MHz (EGA/VGA)
  4642.     01 16/28.322 Mhz (EGA/VGA)
  4643.     10 (EGA/VGA) external clock (EGA)
  4644.     10 (Genoa SuperEGA) 39Mhz
  4645.     11 (EGA/VGA) reserved
  4646.     11 (Genoa SuperEGA) 26.824Mhz
  4647.     11 (S3 Trio32/Trio64) enable clock programming via sequencer registers
  4648.           12h and 13h
  4649.  1    enable CPU RAM access
  4650.  0    CRTC port address
  4651.     0=3B4h mono
  4652.     1=3D4h color
  4653.        (color EGA: enable feature control at 3DAh,status reg 1 at 3D2h)
  4654. ----------P03C403C5--------------------------
  4655. PORT 03C4-03C5 - EGA/VGA - SEQUENCER REGISTERS
  4656. Range:    PORT 03C4h or PORT 02C4h (alternate EGA)
  4657. SeeAlso: PORT 03C0h,PORT 03C2h,PORT 03C4h"Cirrus",PORT 03C4h"S3"
  4658. SeeAlso: PORT 03C4h"Tseng",PORT 03C6h,PORT 03D0h
  4659.  
  4660. 03C4  -W  EGA    TS index register
  4661.         bit7-3 : reserved (VGA only)
  4662.         bit2-0 : current TS index
  4663. 03C4  RW  VGA    sequencer register index (see #P0670)
  4664. 03C5  -W  EGA    TS data register
  4665. 03C5  RW  VGA    sequencer register data
  4666.  
  4667. (Table P0670)
  4668. Values for EGA/VGA indexed TS (sequencer) registers:
  4669.  00h    reset register
  4670.     bit7-2 : reserved
  4671.     bit1 =0: synchronous reset (EGA/VGA)
  4672.     bit0 =0: asynchronous reset (EGA, ET4000)
  4673.          synchronous reset, also (VGA)
  4674.  01h    clocking mode register / TS mode (see #P0671)
  4675.  02h    map mask register (see #P0672)
  4676.  03h    character map select register / font select (see #P0673)
  4677.  04h    memory mode register (see #P0674)
  4678.  07h    (undoc VGA) reset horizontal character counter
  4679.     any write to this register holds horizontal character counter at 00h
  4680.       until any other sequencer register is written
  4681. Note:    register 07h is documented in the C&T Wingine documentation
  4682. SeeAlso: #P0675,#P0696,#P0685
  4683.  
  4684. Bitfields for EGA/VGA sequencer clocking mode register:
  4685. Bit(s)    Description    (Table P0671)
  4686.  7-6    reserved
  4687.  5    (VGA) =1: screen refresh off
  4688.  4    (VGA) shift load (0=4x8, 1=1x32)
  4689.  3    internal character clock (0=normal, 1=dotclock/2)
  4690.  2    serial shift video load (0=4x8, 1=2x16)
  4691.  1    (EGA) CRTC bandwidth (0=4/5, 1=2/5)
  4692.  0    dot clocks per character (0=9, 1=8) (ET4000: see 06h)
  4693. SeeAlso: #P0670
  4694.  
  4695. Bitfields for EGA/VGA sequencer map mask register:
  4696. Bit(s)    Description    (Table P0672)
  4697.  7-4    reserved
  4698.  4    Genoa SuperEGA only: plane4 ???
  4699.  3    write enable display memory plane 3
  4700.  2    write enable display memory plane 2
  4701.  1    write enable display memory plane 1
  4702.  0    write enable display memory plane 0
  4703. SeeAlso: #P0670
  4704.  
  4705. Bitfields for EGA/VGA sequencer character map select register:
  4706. Bit(s)    Description    (Table P0673)
  4707.  7-6    reserved
  4708.  5    (VGA) bit3 for second text-font
  4709.  4    (VGA) bit3 for first text-font
  4710.  3-2    second text-font (attr bit3=1)
  4711.  1-0    first text-font (attr bit3=0)
  4712.     offset in font memory (4-7: VGA only)
  4713.        0 00b =  0KB
  4714.        0 01b = 16KB
  4715.        0 10b = 32KB
  4716.        0 11b = 48KB
  4717.        1 00b =  8KB
  4718.        1 01b = 24KB
  4719.        1 10b = 40KB
  4720.        1 11b = 56KB
  4721. SeeAlso: #P0670
  4722.  
  4723. Bitfields for EGA/VGA sequencer memory mode register:
  4724. Bit(s)    Description    (Table P0674)
  4725.  7-4    reserved
  4726.  3    =1 (VGA) enable chain 4 linear graphics mode
  4727.     (when set, low two bits of CPU address select the plane)
  4728.  2    addressing mode
  4729.     0 odd/even mode (even addresses access planes 0/2, odd planes 1/3)
  4730.     1 sequential mode
  4731.  1    =1 extended memory (0=64KB, 1=more)
  4732.  0    (EGA) 1=textmode, 0=graphics mode
  4733. SeeAlso: #P0670
  4734. ----------P03C403C5--------------------------
  4735. PORT 03C4-03C5 - Cirrus Logic GRAPHICS - EXTENDED SEQUENCER REGISTERS
  4736. SeeAlso: PORT 03C4h"EGA",PORT 03C4h"S3",PORT 03C4h"Tseng"
  4737.  
  4738. 03C4  RW  sequencer register index (see #P0696)
  4739. 03C5  RW  sequencer register data
  4740.  
  4741. (Table P0675)
  4742. Values for Cirrus CL-GD7556 extended sequencer registers:
  4743.  00h-04h same as EGA/VGA (see #P0670) 
  4744.  06h    "SR6" key register -- enable access to extension registers
  4745.     set to xxx1x010 to unlock extended sequencer and CRTC registers
  4746.  07h    "SR7" extended sequencer mode (see #P0676)
  4747.  08h    "SR8" DDC2B control (see #P0677)
  4748.  09h    "SR9" scratch pad #0
  4749.  0Ah    "SRA" scratch pad #1
  4750.  0Bh    "SRB" VCLK0 numerator  !!!gd7556hrm.pdf p.239
  4751.  0Ch    "SRC" VCLK1 numerator
  4752.  0Dh    "SRD" VCLK2 numerator
  4753.  0Eh    "SRE" VCLK3 numerator
  4754.  0Fh    "SRF" display memory control (see #P0678)
  4755.  10h    "SR10" hardware cursor/icon coarse horizontal position
  4756.  11h    "SR11" hardware cursor/icon coarse vertical position
  4757.  12h    "SR12" hardware cursor attributes
  4758.  13h    "SR13" hardware cursor pattern address
  4759.  14h    "SR14" scratch pad #2
  4760.  15h    "SR15" scratch pad #3
  4761.  17h    "SR17" BitBLT memory map I/O address
  4762.  18h    "SR18" signature generator control
  4763.  19h    "SR19" signature generator result (low)
  4764.  1Ah    "SR1A" signature generator result (high)
  4765.  1Bh    "SR1B" VLK0 denominator/post scaler
  4766.  1Ch    "SR1C" VLK1 denominator/post scaler
  4767.  1Dh    "SR1D" VLK2 denominator/post scaler
  4768.  1Eh    "SR1E" VLK3 denominator/post scaler
  4769.  1Fh    "SR1F" MCLK frequency / VCLK source select
  4770.  20h    "SR20" miscellaneous control 2
  4771.  21h    "SR21" test bus control
  4772.  22h    "SR22" hardware configuration read 1
  4773.  23h    "SR23" software configuration 1
  4774.  24h    "SR24" flat panel type switches enable
  4775.  25h    "SR25" FasText(tm) mode control
  4776.  26h    "SR26" shader signature (low)
  4777.  27h    "SR27" shader signature (high)
  4778.  28h    "SR28" scratch pad #4
  4779.  29h    "SR29" scratch pad #5
  4780.  2Ah    "SR2A" hardware icon #0 control
  4781.  2Bh    "SR2B" hardware icon #1 control
  4782.  2Ch    "SR2C" hardware icon #2 control / byte-swap enable
  4783.  2Dh    "SR2D" hardware icon #3 control / cursor memory access
  4784.  2Eh    "SR2E" hardware cursor horizontal position extension
  4785.  2Fh    "SR2F" half-frame accel. FIFO threshold for surrounding graphics
  4786.  32h    "SR32" half-frame accel. FIFO threshold in video window
  4787.  33h    "SR33" spare register
  4788.  34h    "SR34" Host CPU cycle stop control
  4789. Note:    the scratch pad registers are reserved for use by the VGA BIOS
  4790. SeeAlso: #P0670,#P0685,#P0696
  4791.  
  4792. Bitfields for Cirrus CL-GD7556 extended sequencer mode register:
  4793. Bit(s)    Description    (Table P0676)
  4794.  7-4    display memory segment
  4795.  3-1    CRT Controller character clock divisor
  4796.  0    select high-resolution packed-pixel mode
  4797. !!!gd7556hrm.pdf p.234
  4798. SeeAlso: #P0675
  4799.  
  4800. Bitfields for Cirrus CL-GD7556 DDC2B Control register:
  4801. Bit(s)    Description    (Table P0677)
  4802.  7    DDCD output status (read-only)
  4803.  6-3    reserved
  4804.  2    DDCC output status (read-only)
  4805.  1    DDCD (I2C SDA) output control
  4806.  0    DDCC (I2C SCL) output control
  4807. Notes:    bits 1 and 0 are used to drive the I2C bus used for DDC communications;
  4808.       bits 7 and 2 are used to read back the current state of the bus lines
  4809.     SR24 bit 7 must be cleared to enable access to the bus
  4810. SeeAlso: #P0675,#M0079,I2C A0h"DDC"
  4811.  
  4812. Bitfields for Cirrus CL-GD7556 Display Memory Control register:
  4813. Bit(s)    Description    (Table P0678)
  4814.  7    bank select for display memory
  4815.  6    !!!gd7556hrm.pdf p.241
  4816.  5    reserved
  4817.  4-3    display memory data width
  4818.  2    RAS# cycle select for display memory
  4819.  1    display memory configuration symmetry
  4820.  0    multiple-CAS# / multiple-WE# select for display memory
  4821. SeeAlso: #P0823
  4822. ----------P03C403C5--------------------------
  4823. PORT 03C4-03C5 - NVIDIA - EXTENDED SEQUENCER REGISTERS
  4824. SeeAlso: PORT 03C4h"EGA",PORT 03C4h"S3",PORT 03C4h"Tseng"
  4825.  
  4826. 03C4  RW  sequencer register index (see #P0679)
  4827. 03C5  RW  sequencer register data
  4828.  
  4829. (Table P0679)
  4830. Values for NVIDIA NV3/RIVA128 extended sequencer registers:
  4831.  06h    key register (enable access to extended registers when set to 57h,
  4832.       disable access when set to any other value)
  4833.  19h    extended start address and offset
  4834.     bits 7-5: offset bits 10-8
  4835.     bits 4-0: address bits 20-16
  4836.  1Ah    flags (see #P0680)
  4837.  1Bh    refresh FIFO control (see #P0681)
  4838.  20h    FIFO watermark (see #P0682)
  4839.  25h    miscellaneous extension bits (see #P0683)
  4840.  28h    framebuffer format
  4841.  2Dh    extended horizontal bits (see #P0684)
  4842.  30h    graphics cursor control 0
  4843.  31h    graphics cursor control 1
  4844.  ???
  4845.  
  4846. Bitfields for NVIDIA NV3 flags:
  4847. Bit(s)    Description    (Table P0680)
  4848.  !!!nv3ref.h
  4849. SeeAlso: #P0679
  4850.  
  4851. Bitfields for NVIDIA NV3 refresh FIFO control:
  4852. Bit(s)    Description    (Table P0681)
  4853.  7    underflow warning
  4854.  2-0    burst length
  4855.     000 eight
  4856.     001 32
  4857.     010 64
  4858.     011 128
  4859.     100 256
  4860. SeeAlso: #P0679,#P0682
  4861.  
  4862. Bitfields for NVIDIA NV3 FIFO watermark:
  4863. Bit(s)    Description    (Table P0682)
  4864.  7    reset FIFO
  4865.  5-0    watermark, in eight-byte units (refresh FIFO will start refilling
  4866.       when occupancy falls below twice this value)
  4867. SeeAlso: #P0679,#P0681
  4868.  
  4869. Bitfields for NVIDIA NV3 miscellaneous extension bits:
  4870. Bit(s)    Description    (Table P0683)
  4871.  5    offset bit 11
  4872.  4    horizontal blanking end, bit 6
  4873.  3    vertical blanking start, bit 10
  4874.  2    vertical retrace start, bit 10
  4875.  1    vertical display end, bit 10
  4876.  0    vertical total, bit 10
  4877. SeeAlso: #P0679,#P0684
  4878.  
  4879. Bitfields for NVIDIA NV3 extended horizontal bits:
  4880. Bit(s)    Description    (Table P0684)
  4881.  4    "inter_half_start" bit 8
  4882.  3    horizontal retrace start, bit 8
  4883.  2    horizontal blanking start, bit 8
  4884.  1    display end, bit 8
  4885.  0    display total, bit 8
  4886. SeeAlso: #P0679,#P0683
  4887. ----------P03C403C5--------------------------
  4888. PORT 03C4-03C5 - S3 GRAPHICS - EXTENDED SEQUENCER REGISTERS
  4889. SeeAlso: PORT 03C4h"EGA",PORT 03C4h"Cirrus",PORT 03C4h"Tseng",PORT 03C4"NVIDIA"
  4890.  
  4891. 03C4  RW  sequencer register index (see #P0685)
  4892. 03C5  RW  sequencer register data
  4893.  
  4894. (Table P0685)
  4895. Values for S3 extended sequencer registers:
  4896.  00h-04h same as EGA/VGA (see #P0670) 
  4897.  08h    S3 864/964/765 (Trio64V): key register -- enable access to S3 extended
  4898.       registers when set to x6h
  4899. ---S3 Trio32/Trio64/Trio64V+ ---
  4900.  09h    "SR9" MMIO-Only
  4901.     bit 7: disable port I/O when memory-mapped I/O is enabled
  4902.     bits 6-0: reserved
  4903.     bit 1: ??? (set by Stealth64 Video 2001)
  4904.  0Ah    "SRA" external bus request control register (see #P0686)
  4905.  0Bh    "SRB" miscellaneous extended sequencer register (see #P0687)
  4906.  0Dh    "SRD" VSYNC/HSYNC control (see #P0689)
  4907.  10h    "SR10" MCLK value (low) (see #P0690)
  4908.  11h    "SR11" MCLK value (high) (see #P0691)
  4909.  12h    "SR12" DCLK value (low) (see #P0690)
  4910.  13h    "SR13" DCLK value (high) (see #P0691)
  4911.  14h    "SR14" CLKSYN control 1 (see #P0692)
  4912.  15h    "SR15" CLKSYN control 2 (see #P0693)
  4913.  16h    "SR16" CLKSYN Test (high) (reserved for testing of clock synth)
  4914.  17h    "SR17" CLKSYN Test (low) (reserved for testing of clock synth)
  4915.  18h    "SR18" RAMDAC/CLKSYN Control (see #P0694)
  4916. ---S3 Trio64V+ ---
  4917.  1Ch    "SR1C" signal select (see #P0695)
  4918. SeeAlso: #P0670,#P0675,#P0696
  4919.  
  4920. Bitfields for S3 Trio32/64/64V+ "SRA" external bus request control register:
  4921. Bit(s)    Description    (Table P0686)
  4922.  7    fast CPU writes
  4923.     when set and MCLK is less than 57 MHz, CPU writes take 2 MCLKs instead
  4924.       of 3 MCLKs (for MCLKs of 55-57 MHz, SR15 bit 7 should also be set)
  4925.  6    (Trio64) Pin50 function select
  4926.     =0 (CR36 bit 2=1) Pin50 outputs a second -OE0 signal
  4927.     =1 (CR36 bit 2=1) Pin50 outputs -RAS1
  4928.  5    =0 tri-state pixel-data lines (reduces power consumption)
  4929.  4-0    maximum 2*MCLKs that secondary memory controllers are granted access to
  4930.       Trio's memory bus
  4931. Note:    bit 6 must be set for 4M fast page-mode memory; it has no effect if
  4932.       EDO memory is selected via CR36 bit 2
  4933. SeeAlso: #P0685
  4934.  
  4935. Bitfields for S3 Trio32/64/64V+ "SRB" misc extended sequencer register:
  4936. Bit(s)    Description    (Table P0687)
  4937.  7-4    alternate color mode (for feature connector input) (see #P0688)
  4938.  3    (Trio32 only) enable packed 24 bpp (mode 12); also requires CR67 bits
  4939.           7-4=0000
  4940.  2    reserved
  4941.  1    VAFC clocking
  4942.     =0 latch pixel data from pass-through feature connector on VCLK
  4943.     =1 latch pixel data from VAFC on VCLKI
  4944.  0    dot clock select (testing only)
  4945.     =0 use internal dot clock
  4946.     =1 use VCLKI
  4947. SeeAlso: #P0685,#P0751
  4948.  
  4949. (Table P0688)
  4950. Values for S3 Trio32/Trio64 color mode:
  4951. 0000    mode 0 = 8-bit, 1 pixel/VCLK
  4952. 0001    mode 8 = 8-bit, 2 pixels/VCLK
  4953. 0011    mode 9 = 15-bit, 1 pixel/VCLK
  4954. 0101    mode 10 = 16-bit, 1 pixel/VCLK
  4955. 0111    mode 12 = 640x480x24-bit (packed), 1 pixel/3 DCLKs (Trio32 only)
  4956. 1101    mode 13 = 24-bit, 1 pixel/VCLK
  4957. else    reserved
  4958. Note:    mode 8 also requires SR18 bit 7=1 and either SR15 bit 4=1 or
  4959.       SR15 bit 6=1
  4960. SeeAlso: #P0687,#P0751
  4961.  
  4962. Bitfields for S3 "SRD" Trio32/Trio64 VSYNC/HSYNC control:
  4963. Bit(s)    Description    (Table P0689)
  4964.  7-6    vertical sync control
  4965.     00 normal operation
  4966.     01 force to 0
  4967.     10 force to 1
  4968.     11 reserved
  4969.  5-0    horizontal sync control (settings as for vsync)
  4970.  3-1    reserved
  4971.  1    (Trio64V+) feature connector type
  4972.     =0 Trio64-compatible
  4973.     =1 new LPB type
  4974.  0    enable feature connector
  4975. Note:    bits 7-4 are used to select the DPMS power mode as follows:
  4976.         0000 On
  4977.         0001 Standby
  4978.         0100 Suspend
  4979.         0101 Off
  4980. SeeAlso: #P0685
  4981.  
  4982. Bitfields for S3 Trio32/Trio64 "SR10"/"SR12" MCLK/DCLK value (low):
  4983. Bit(s)    Description    (Table P0690)
  4984.  7    reserved
  4985.  6-5    PLL R value
  4986.  4-0    PLL N-divider value
  4987. SeeAlso: #P0691,#P0685
  4988.  
  4989. Bitfields for S3 Trio32/Trio64 "SR11"/"SR13" MCLK/DCLK value (high):
  4990. Bit(s)    Description    (Table P0691)
  4991.  7    reserved
  4992.  6-0    PLL M-divider value
  4993. SeeAlso: #P0690,#P0685
  4994.  
  4995. Bitfields for S3 Trio32/Trio64 "SR14" CLKSYN control 1:
  4996. Bit(s)    Description    (Table P0692)
  4997.  7    select external DCLK (testing only; also requires external strapping)
  4998.  6    select external MCLK (testing only)
  4999.  5    select Pin146 function
  5000.     =0 use as -STRD
  5001.     =1 tri-state output; use as input (required to enable bit 6)
  5002.  4    clear clock synthesizer counters (testing only)
  5003.  3    "M TEST" MCLK test
  5004.     =0 test DCLK
  5005.     =1 test MCLK
  5006.  2    enable clock synthesizer counters (testing only)
  5007.  1    power down MCLK PLL (testing only)
  5008.  0    power down DCLK PLL (testing only)
  5009. SeeAlso: #P0693,#P0685
  5010.  
  5011. Bitfields for S3 Trio32/Trio64 "SR15" CLKSYN control 2:
  5012. Bit(s)    Description    (Table P0693)
  5013.  7    enable fast memory writes (2 MCLKs instead of 3 MCLKs) by bypassing
  5014.       VGA lienar addressing logic (requires SRA bit 7 set)
  5015.  6    invert DCLK
  5016.  5    load MCLK and DCLK immediately on transition from 1 to 0
  5017.  4    divide DCLK by 2
  5018.  3    VLCK direction
  5019.     =0 Pin148 always outputs internal VCLK
  5020.     =1 -EVCLK signal determines VLCK direction
  5021.  2    MCLK output (testing only)
  5022.     =0 Pin147 acts as STWR strobe
  5023.     =1 Pin147 outputs internal MCLK
  5024.  1    enable new DCLK frequency load (asynchronous)
  5025.  0    enable new MCLK frequency load
  5026. Notes:    bits 1 and 5 also require that PORT 03C2h bits 3-2=11
  5027.     bit 5 must never be left set; it should only be pulsed to cause the
  5028.       MCLK/DCLK load
  5029.     bit 0 should be cleared after loading the new MCLK value to avoid
  5030.       repeated loading
  5031.     either bit 4 or 6 must be set for clock-doubled RAMDAC operation
  5032.       (see #P0686)
  5033. SeeAlso: #P0692,#P0694,#P0685
  5034.  
  5035. Bitfields for S3 Trio32/Trio64 "SR18" RAMDAC/CLKSYN control:
  5036. Bit(s)    Description    (Table P0694)
  5037.  7    enable clock-doubled mode (see also #393)
  5038.  6    fast LUT write cycle (1 DCLK instead of default 2 DCLKs)
  5039.  5    power down RAMDAC (RAMDAC memory is retained even when powered down)
  5040.  4    (testing only) place blue data on internal data bus
  5041.  3    (testing only) place green data on internal data bus
  5042.  2    (testing only) place red data on internal data bus
  5043.  1    (testing only) reset RAMDAC test counter
  5044.  0    (testing only) enable test counter
  5045. SeeAlso: #P0693
  5046.  
  5047. Bitfields for S3 Trio64V+ "SR1C" signal select:
  5048. Bit(s)    Description    (Table P0695)
  5049.  7-2    reserved
  5050.  1-0    signal select
  5051.     VL-Bus:
  5052.         00 Pin151 is ENFEAT#, Pin153 is ROMCS# (default)
  5053.         01 Pin151 is GPIOSTR#, Pin153 is ROMCS#
  5054.         10 Pin151 is GOP0, Pin153 is ROMCS#
  5055.         11 Pin151 is GOP0, Pin153 is GOP1
  5056.     PCI:
  5057.         00 Pin151 is ENFEAT#, Pin190 is STWR#, Pin153 is ROMEN# (default)
  5058.         01 Pin151 is reserved, Pin190 is STWR#, Pin153 is ROMEN#
  5059.         1x Pin151 is GOP0, Pin190 is GOP1, Pin153 is ROMEN#
  5060. SeeAlso: #P0073
  5061. ----------P03C403C5--------------------------
  5062. PORT 03C4-03C5 - Tseng Labs GRAPHICS - EXTENDED SEQUENCER REGISTERS
  5063. SeeAlso: PORT 03C4h"EGA",PORT 03C4h"Cirrus",PORT 03C4h"S3"
  5064.  
  5065. 03C4  RW  sequencer register index (see #P0696)
  5066. 03C5  RW  sequencer register data
  5067.  
  5068. (Table P0696)
  5069. Values for Tseng Labs extended sequencer registers:
  5070.  00h-04h same as EGA/VGA (see #P0670)
  5071.  06h    ET3000 only: Zoom control register
  5072.  06h    ET4000 only: TS state control (protected by 'key')
  5073.     bit7-3 : reserved
  5074.     bit2-1 : timing sequencer state bit2-1
  5075.            (bit0 is bit0 TS mode register)
  5076.            00 0b=  9 dots
  5077.            00 1b=  8 dots
  5078.            01 0b= 10      (10-16 are ET4000 only)
  5079.            01 1b= 11
  5080.            10 0b= 12
  5081.            11 1b= 16
  5082.     bit0    : reserved
  5083.  07h    ET3000/ET4000 only: TS auxiliary mode (see #P0697)
  5084. SeeAlso: #P0670,#P0675,#P0685
  5085.  
  5086. Bitfields for ET3000/ET4000 sequencer auxiliary mode:
  5087. Bit(s)    Description    (Table P0697)
  5088.  7    compatibility mode (1=VGA, 0=EGA)
  5089.  6    select MCLK/2 (with bit0=0)
  5090.  5    BIOS ROM address map 2
  5091.  4    reserved
  5092.  3    BIOS ROM address map 1
  5093.  2    reserved (1)
  5094.  1    select SCLK input from MCLK
  5095.  0    select MCLK/4 (with bit6=1)
  5096.  5+3    ROM address
  5097.     00 C0000-C3FFF
  5098.     01 disabled
  5099.     10 C0000-C5FFF, C6800-C7FFF
  5100.     11 C0000-C7FFF (default)
  5101. Notes:    at least on the ET4000, this register is protected by a 'key'
  5102.     this register is also supported by ET3000, but the above description
  5103.       is based on the ET4000
  5104. SeeAlso: #P0670
  5105. --------V-P03C603C9--------------------------
  5106. PORT 03C6-03C9 - EGA/VGA/MCGA - DAC REGISTERS
  5107. Range:    PORT 03C6h or PORT 02C6h (alternate)
  5108. SeeAlso: PORT 03C0h,PORT 03C2h,PORT 03C4h,PORT 03CAh,PORT 03CEh"EGA",PORT 03D0h
  5109. SeeAlso: PORT 83C6h"Wingine"
  5110.  
  5111. 03C6  RW  (VGA, MCGA) PEL mask register (default FFh)
  5112.          VGA:    AND mask for color-register address.
  5113.          MCGA:    Never change from the default FFh.
  5114. 03C6  RW  HiColor ET4000 (Sierra RAMDACs e.g. SC11486, SC11481, SC11488):
  5115.          Enable HiColor feature: beside other assignments,
  5116.          consequtive read 3C6h 4 times and write magic value 80h to it.
  5117. 03C7  -W  (VGA,MCGA,CEG-VGA) PEL address register (read mode)
  5118.          Sets DAC in read mode and assign start of color register
  5119.          index (0..255) for following read accesses to 3C9h.
  5120.          Don't write to 3C9h while in read mode. Next access to
  5121.          03C8h will stop pending mode immediatly.
  5122. 03C7  -W  (CEG-Color VGA w/ Edsun Labs RAMDACs)
  5123.          Enable and set Countinous Edge Graphics Mode:
  5124.          Consecutive writely the following three key sequences in read
  5125.          mode (!) to 3C9h register DEh : 'CEG', 'EDS', 'UNx' (x see
  5126.          below). Current CEG mode can be read from palette register
  5127.          BFh 'blue', write access to that register will disable CEG
  5128.          features.
  5129.          In CEG modes by combining old with new colors and dynamically
  5130.          changing palette values, the effective colors displayable
  5131.          are enhanced dramatically (in EDP modes up to virtually 32bit
  5132.          truecolor) on standard 16/256 color VGA. Also, effective
  5133.          resolution enhancement takes effect by anti-aliasing.
  5134.          Necessary EDP escape sequences should be moved to image
  5135.          border or single colored areas, if possible.
  5136.  
  5137.          REP-mode: if pixel are doubled in current video mode
  5138.          EDP-mode: pseudo-truecolor with Edsun dynamic palette
  5139.          (see #P0698,#P0699)
  5140.  
  5141.          Palette-color-register single-byte-format (each 3 times):
  5142.           Mode A:          Mode C:
  5143.            bit7-4: mix code       bit3     : 0=color, 1=code
  5144.            bit3-0: color code       bit2-0: color / mix code
  5145.           Mode B:          Mode D:
  5146.            bit7-5: mix code       bit7-0: see mix code table
  5147.            bit4     : 0=new, 1=old      Non-CEG modes:
  5148.            bit3-0: color code       bit7-0: as usual
  5149.  
  5150.          In EDP modes, video-memory-palette-changing escape-sequences:
  5151.           Mode A:     Mode B:      Mode C:     Mode D:
  5152.            7/escape    7/escape       7/escape    0BFh
  5153.            red           red       red7-4      red
  5154.            green       green       red3-0      green
  5155.            blue           blue       green7-4    blue
  5156.            address     address       green3-0    address
  5157.                        blue7-4
  5158.                        blue3-0
  5159.                        address
  5160. 03C7  R-  VGA    DAC state register
  5161.         bit7-2 reserved
  5162.         bit1-0: 00b write palette cycle (write mode)
  5163.             01h reserved
  5164.             10b reserved
  5165.             11b read palette cycle (read mode)
  5166. 03C8  RW  (VGA,MCGA) PEL address register (write mode)
  5167.          Sets DAC in write mode and assign start of color register
  5168.          index (0..255) for following write accesses to 3C9h.
  5169.          Don't read from 3C9h while in write mode. Next access to
  5170.          03C8h will stop pending mode immediatly.
  5171. 03C8  RW  (Genoa SuperEGA) SuperEGA control register (all emulation modes)
  5172.           bit7-2: reserved
  5173.           bit1    : 0=EGA mode, 1=backward compatibility mode
  5174.           bit0    : not used
  5175. 03C8  R?  (S3 Trio32/64) General Input Port (see #P0738)
  5176. 03C9  RW  (VGA,MCGA) PEL data register
  5177.          Three consequtive reads (in read mode) or writes (in write
  5178.          mode) in the order: red, green, blue. The internal DAC index
  5179.          is incremented each 3rd access.
  5180.           bit7-6: HiColor VGA DACs only: color-value bit7-6
  5181.           bit5-0:             color-value bit5-0
  5182.  
  5183. (Table P0698)
  5184. Values for EDSUN CEG (Continuous Edge Graphics) modes::
  5185.  x:  mode:     colors:  mix:    pixel depth:  effective colors:
  5186.  0 = disabled       256       -         8            256
  5187.  1 = A            16      16         8           1920
  5188.  2 = A+REP        16      16      8 dblscn       1920
  5189.  3 = A+EDP        15      16            truecolor
  5190.  4 = reserved         -       -         -             -
  5191.  5 = B            16       8         8            960
  5192.  6 = B+REP        16       8      8 dblscn        960
  5193.  7 = B+EDP        15       8            truecolor
  5194.  8 = reserved         -       -         -             -
  5195.  9 = C             8       8         4            224
  5196.  10 = C+REP         8       8      4 dblscn        224
  5197.  11 = C+EDP         7       8            truecolor
  5198.  12 = reserved         -       -         -             -
  5199.  13 = D           223      32         8         792096
  5200.  14 = D+REP       223      32      8 dblscn     792096
  5201.  15 = D+EDP       223      32            truecolor
  5202. SeeAlso: #P0699
  5203.  
  5204. (Table P0699)
  5205. Values for EDSUN CEG mixing codes:
  5206.  Mode A:           |  Mode C:
  5207.  mix: new:    old:   |   mix: new:   old:   colorcode:
  5208.    0 = 32/32    0/32   |    0 =      -     -     0
  5209.    1 = 30/32    2/32   |    1 =      -     -     1
  5210.    2 = 28/32    4/32   |    2 =      -     -     2
  5211.    3 = 26/32    6/32   |    3 =      -     -     3
  5212.    4 = 24/32    8/32   |    4 =      -     -     4
  5213.    5 = 22/32   10/32   |    5 =      -     -     5
  5214.    6 = 20/32   12/32   |    6 =      -     -     6
  5215.    7 = 18/32   14/32   |    7 =      -     -     7/EDP
  5216.    8 = 16/32   16/32   |    8 = 30/32    2/32   -
  5217.    9 = 14/32   18/32   |    9 = 28/32    4/32   -
  5218.   10 = 12/32   20/32   |   10 = 26/32    6/32   -
  5219.   11 = 10/32   22/32   |   11 = 24/32    8/32   -
  5220.   12 =    8/32   24/32   |   12 = 22/32  10/32   -
  5221.   13 =    6/32   26/32   |   13 = 20/32  12/32   -
  5222.   14 =    4/32   28/32   |   14 = 18/32  14/32   -
  5223.   15 =    2/32   30/32   |   15 = 16/32  16/32   -
  5224. ---Mode B:           |  Mode D:
  5225.  mix: new:    old:   |   mix:          new:   old:  description:
  5226.    0 = 30/32    2/32   |   00h..BEh =    -      -   normal color
  5227.    1 = 26/32    6/32   |   BFh        =    -      -   EDP
  5228.    2 = 22/32   10/32   |   C0h        = 32/32   0/32
  5229.    3 = 18/32   14/32   |   C1h        = 31/32   1/32
  5230.    4 = 14/32   18/32   |   C2h        = 30/32   2/32
  5231.    5 = 10/32   22/32   |   ...        =  ...    ...
  5232.    6 =    6/32   26/32   |   DFh        =  0/32  32/32
  5233.    7 =    2/32   30/32   |   E0h-FFh  =    -      -   normal color
  5234. SeeAlso: #P0698
  5235. --------V-P03CA03CD--------------------------
  5236. PORT 03CA-03CD - EGA/VGA/MCGA - GRAPHICS POSITION
  5237. Range:    PORT 03C0h or PORT 02C0h (alternate)
  5238. SeeAlso: PORT 03C0h,PORT 03C2h,PORT 03C4h,PORT 03C6h,PORT 03CEh"EGA",PORT 03D0h
  5239.  
  5240. 03CA  -W  EGA    graphics 2 position register
  5241. 03CA  R-  VGA    feature control register (see PORT 03BAh,PORT 03DAh-W)
  5242. 03CB  RW  (ET4000/W32) GDC segment select register 2 ('key' protected?)
  5243.         The existence of this r/w register 0..255 is often
  5244.          used to decide between ET4000 and ET4000/W32.
  5245.          bit7-6: reserved, but existent
  5246.          bit5-4: bits 5-4 of read segment pointer
  5247.          bit3-2: reserved, but existent
  5248.          bit1-0: bits 5-4 of write segment pointer
  5249. 03CC  -W  EGA    graphics 1 position register
  5250. 03CC  R-  VGA    miscellaneous output register (see PORT 03C2h-W,#P0669,#P0820)
  5251. 03CD  RW  (ET3000, ET4000, ET4000/W32) GDC segment select ('key' protected)
  5252.         The existence of this r/w register is often used as
  5253.         detection of ET3000, ET4000 and ET4000/W32 chips.
  5254.          bit7-4: read segment pointer for mapping to A0000h
  5255.          bit3-0: write segment pointer for mapping to A0000h
  5256. --------V-P03CE03CF--------------------------
  5257. PORT 03CE-03CF - EGA/VGA/MCGA - GRAPHICS CONTROLLER REGISTERS
  5258. Range:    PORT 03CEh or PORT 02CEh (alternate EGA)
  5259. SeeAlso: PORT 03C0h,PORT 03C2h,PORT 03C4h,PORT 03C6h,PORT 03D0h
  5260. SeeAlso: PORT 03CEh"Chips&Technologies"
  5261.  
  5262. 03CE  -W  EGA    GDC index register
  5263. 03CE  RW  VGA    graphics address register / GDC index
  5264.               bit7-4: reserved
  5265.               bit3-0: index
  5266. 03CF  -W  EGA    GDC data register (see #P0700)
  5267. 03CF  RW  VGA    other graphics register (see #P0700)
  5268.  
  5269. (Table P0700)
  5270. Values for EGA/VGA indexed registers in GDC:
  5271.  00h    set/reset register (default 00h)
  5272.     functionality depending on write mode (register 05h) (see #P0704)
  5273.     bit7-4: reserved
  5274.     bit3  : 0=write 00h, 1=write FFh in plane 3
  5275.     bit2  : 0=write 00h, 1=write FFh in plane 2
  5276.     bit1  : 0=write 00h, 1=write FFh in plane 1
  5277.     bit0  : 0=write 00h, 1=write FFh in plane 0
  5278.  01h    enable set/reset register (default 00h) (see #P0701)
  5279.  02h    color compare register (default 00h) (see #P0702)
  5280.  03h    data rotate register (default 00h) (see #P0703)
  5281.  04h    read map select register (default 00h)
  5282.     bit7-3: reserved
  5283.     bit2  : EGA?? & Genoa SuperEGA: map select bit2
  5284.     bit1-0: map select (0..3)
  5285.  05h    mode register (see #P0704)
  5286.  06h    miscellaneous register (see #P0705)
  5287.  07h    color don't care register
  5288.     bit7-4: reserved
  5289.     bit3=1: color plane 3 don't care (ignore bit3)
  5290.     bit2=1: color plane 2 don't care (ignore bit2)
  5291.     bit1=1: color plane 1 don't care (ignore bit1)
  5292.     bit0=1: color plane 0 don't care (ignore bit0)
  5293.  08h    bit mask register (default FFh)
  5294.     bit7-0: bitmask for latch/databyte
  5295.           (bit set=change allowed)
  5296. ---Paradise SuperVGA---
  5297.  0Fh    lock register
  5298.     The ability to write and reread 00h..07h to this register
  5299.     is often used as detection of Paradise chips.
  5300.     bit7-0 = 01h lock/hide Paradise specific registers
  5301.            = 05h unlock Paradise specific registers
  5302.     bit7-3: reserved
  5303.     bit2-0: flipflops, reserved
  5304. SeeAlso: #P0706
  5305.  
  5306. Bitfields for EGA/VGA GDC enable set/reset register:
  5307. Bit(s)    Description    (Table P0701)
  5308.  7-4    reserved (used on Genoa SuperEGA???)
  5309.  3    enable set/reset plane 3
  5310.  2    enable set/reset plane 2
  5311.  1    enable set/reset plane 1
  5312.  0    enable set/reset plane 0
  5313.  3-0    0=CPU access, 1=set/reset access to plane
  5314. SeeAlso: #P0700
  5315.  
  5316. Bitfields for EGA/VGA GDC color compare register:
  5317. Bit(s)    Description    (Table P0702)
  5318.  7-4    reserved
  5319.  3    color compare 3
  5320.  2    color compare 2
  5321.  1    color compare 1
  5322.  0    color compare 0
  5323.  3-0    (color number)
  5324. SeeAlso: #P0700
  5325.  
  5326. Bitfields for EGA/VGA data rotate register (GR3):
  5327. Bit(s)    Description    (Table P0703)
  5328.  7-5    reserved
  5329.  4-3    logical function select
  5330.     00 CPU-data overwrites
  5331.     01 CPU-data AND with latch-register
  5332.     10 CPU-data OR with latch-register
  5333.     11 CPU-data XOR with latch-register
  5334.  2-0    rotate count
  5335. SeeAlso: #P0700
  5336.  
  5337. Bitfields for EGA/VGA GDC mode register:
  5338. Bit(s)    Description    (Table P0704)
  5339.  7    reserved
  5340.  6    (VGA) 0=standard, 1=enable 256 colors
  5341.  5    shift register mode, 0=standard, 1=CGA-graphics
  5342.       (not used on Genoa SuperEGA???)
  5343.  4=1    enable odd/even address mode
  5344.  3    read mode, 0=mode0, 1=mode1
  5345.  2    (EGA) test condition, 0=standard, 1=output tristate
  5346.  1-0    write mode
  5347.     00 mode0, plane source is CPU or set/reset
  5348.     01 mode1, plane source is latch-register
  5349.     10 mode2, plane source is CPU as set/reset
  5350.     11 (VGA) mode3, CPU as set/reset AND bitmask
  5351. SeeAlso: #P0700
  5352.  
  5353. Bitfields for EGA/VGA GDC miscellaneous register:
  5354. Bit(s)    Description    (Table P0705)
  5355.  7-4    reserved (=0)
  5356.  3-2    memory map
  5357.     00b = A0000..BFFFF (128KB)
  5358.     01b = A0000..AFFFF (64KB)
  5359.     10b = B0000..B7FFF (32KB)
  5360.     11b = B8000..BFFFF (32KB)
  5361.  1    chain odd maps to even, 1=subst addess bit0
  5362.  0    0=textmode, 1=graphics mode
  5363. SeeAlso: #P0700
  5364. --------V-P03CE03CF--------------------------
  5365. PORT 03CE-03CF - Chips&Technologies - GRAPHICS CONTROLLER EXTENDED REGISTERS
  5366. SeeAlso: PORT 03CE"EGA"
  5367.  
  5368. 03CE  RW  graphics address register / GDC index
  5369. 03CF  RW  other graphics register (see #P0706)
  5370.  
  5371. (Table P0706)
  5372. Values for Cirrus CL-GD7556 extended GDC registers:
  5373.  00h-08h same as EGA/VGA (see #P0700)
  5374.  09h    "GR9" display memory offset 0
  5375.  0Ah    "GRA" display memory offset 1
  5376.  0Bh    "GRB" graphics controller mode extensions
  5377.  0Ch    "GRC" color key compare value / chroma key Y minimum
  5378.  0Dh    "GRD" color key compare mask / chroma key Y maximum
  5379.  0Eh    "GRE" DPMS control
  5380.  10h    "GR10" background color expansion 1
  5381.  11h    "GR11" foreground color expansion 1
  5382.  13h    "GR13" foreground color expansion 2
  5383.  16h    "GR16" scanline counter readback (low)
  5384.  17h    "GR17" scanline counter readback (high)
  5385.  18h    "GR18" EDO RAM control
  5386.  1Ah    "GR1A" scratch pad #6
  5387.  1Bh    "GR1B" scratch pad #7
  5388.  1Ch    "GR1C" chroma-key U minimum
  5389.  1Dh    "GR1D" chroma-key U maximum
  5390.  1Eh    "GR1E" chroma-key V minimum
  5391.  1Fh    "GR1F" chroma-key V maximum
  5392.  20h    "GR20" BitBLT width (low)
  5393.  21h    "GR21" BitBLT width (high)
  5394.  22h    "GR22" BitBLT height (low)
  5395.  23h    "GR23" BitBLT height (high)
  5396.  24h    "GR24" BitBLT destination pitch (low)
  5397.  25h    "GR25" BitBLT destination pitch (high)
  5398.  26h    "GR26" BitBLT source pitch (low)
  5399.  27h    "GR27" BitBLT source pitch (high)
  5400.  28h    "GR28" BitBLT destination address (low)
  5401.  29h    "GR29" BitBLT destination address (middle)
  5402.  2Ah    "GR2A" BitBLT destination address (high)
  5403.  2Ch    "GR2C" BitBLT source address (low)
  5404.  2Dh    "GR2D" BitBLT source address (middle)
  5405.  2Eh    "GR2E" BitBLT source address (high)
  5406.  2Fh    "GR2F" BitBLT destination write mask
  5407.  30h    "GR30" BitBLT mode
  5408.  31h    "GR31" BitBLT start/status
  5409.  32h    "GR32" BitBLT raster operation
  5410.  33h    "GR33" BitBLT mode extensions
  5411. !!! (details to be added)
  5412. Note:    the scratch pad registers are reserved for use by the VGA BIOS
  5413. SeeAlso: #P0700
  5414. --------V-P03CE03CF--------------------------
  5415. PORT 03CE-03CF - Compaq Qvision - Functionality Level
  5416.  
  5417. 03CE  -W  graphics address register (index for next port) (see #P0707)
  5418. 03CF  RW  other graphics register
  5419.  
  5420. (Table P0707)
  5421. Values for Compaq QVision graphics register index:
  5422.  0Ch  RO    controller version
  5423.         2Fh Advanced VGA
  5424.         37h early QVision 1024
  5425.         71h QVision 1280 or later QVision 1024
  5426.  0Dh        extended controller version
  5427.  0Eh        extended controller capabilities
  5428.  0Fh        environment info
  5429.  54h        available memory
  5430.  55h        phase-locked-loop clock
  5431.  56h-57h    controller capabilities
  5432. --------V-P03D003D3--------------------------
  5433. PORT 03D0-03D3 - CGA (Color Graphics Adapter) - MIRRORS OF 03D4/03D5
  5434.  
  5435. 03D0  -W  same as PORT 03D4h
  5436. 03D1  RW  same as PORT 03D5h
  5437. 03D2  -W  same as PORT 03D4h
  5438. 03D3  RW  same as PORT 03D5h
  5439. --------V-P03D403D5--------------------------
  5440. PORT 03D4-03D5 - COLOR VIDEO - CRT CONTROL REGISTERS
  5441.  
  5442. 03D4  rW  CRT (6845) register index   (CGA/MCGA/color EGA/color VGA)
  5443.     selects which register (0-11h) is to be accessed through 03D5
  5444.     this port is r/w on some VGA, e.g. ET4000
  5445.         bit 7-6 =0: (VGA) reserved
  5446.         bit 5   =0: (VGA) reserved for testage
  5447.         bit 4-0   : selects which register is to be accessed through 03D5
  5448. 03D5  -W  CRT (6845) data register   (CGA/MCGA/color EGA/color VGA) (see #P0708)
  5449.     selected by PORT 03D4h. registers 0C-0F may be read
  5450.       (see also PORT 03B5h)
  5451.     MCGA, native EGA and VGA use very different defaults from those
  5452.       mentioned for the other adapters; for additional notes and
  5453.       registers 00h-0Fh and EGA/VGA registers 10h-18h and ET4000
  5454.       registers 32h-37h see PORT 03B5h (see #P0654)
  5455.     registers 10h-11h on CGA, EGA, VGA and 12h-14h on EGA, VGA are
  5456.       conflictive with MCGA (see #P0710)
  5457.  
  5458. (Table P0708)
  5459. Values for EGA/VGA+ CRT Controller register index:
  5460.  00h-0Fh    same as MDA/CGA (see #P0654)
  5461.  10h R-    native VGA with bit7=1 in end horizontal blanking (03h) and ET4000:
  5462.            start vertical retrace
  5463.  10h -W start vertical retrace
  5464.  11h R- native VGA with bit7=1 in end horizontal blanking (03h):
  5465.            end vertical retrace
  5466.  11h -W end vertical retrace
  5467.            bit7  : VGA: protection bit
  5468.                 =0 enable write access to 00h-07h
  5469.                 =1 read only regs 00h-07h with the exception
  5470.                    of bit4 in 07h. ET4000: protect 35h also.
  5471.            bit6  : VGA: =0 three, =1 five refreshcycles/line
  5472.                ET4000: reserved
  5473.            bit5=0: (MCGA also) enable vertical interrupt
  5474.            bit4=0: (MCGA also) clear vertical interrupt
  5475.            =1:           no effect
  5476.            bit3-0: (MCGA also) vertical retrace end
  5477.  12h    vertical display end register
  5478.  13h    row offset register
  5479.            logical screen line width in
  5480.         byte mode : bytes/(line/2)
  5481.         word mode : bytes/(line/4)
  5482.         dword mode: bytes/(line/8)
  5483.  14h    underline location register
  5484.            bit7: reserved (0)
  5485.            bit6: (VGA) 0=word-mode, 1=dword-mode (see 17h, bit6)
  5486.            bit5: (VGA) 0=standard address counter clock
  5487.                1=address counter clock/4 (see 17h, bit3)
  5488.            bit4-0: horizontal underline row scan
  5489.  15h    (EGA,VGA) start vertical blanking-1
  5490.  16h    (EGA,VGA) end vertical blanking register
  5491.            bit7-5 : EGA: reserved, but used on original EGA???
  5492.            bit4-0 : end vertical blanking
  5493.  17h    (EGA,VGA) "CR17" mode control register (see #P0657)
  5494.  18h    (EGA,VGA) "CR18" line compare register
  5495.  19h    Genoa SuperEGA only: double scan control
  5496.            at 3B5h only in MDA, HGC emulation, but at 3D5h even in
  5497.            mono EGA modes.
  5498.            bit7-5 : reserved
  5499.            bit4   : HR/VR width adjust flag for double scan mode
  5500.            bit3-1 : 1=test, 0=normal
  5501.            bit0   : double scan enable
  5502.  22h    (VGA) "CR22" CPU Latch Data Register (read-only)
  5503.  24h    (VGA) "CR24" Attribute Controller Toggle register (R-O) (see #P0709)
  5504.  3xh    (VGA)  !!!chips\64200.pdf p.57
  5505. Notes:    registers 10h-14h on the MCGA have conflicting uses (see #P0710)
  5506.     registers 22h,24h, and 3xh exist on the standard IBM VGA but were not
  5507.       documented
  5508. SeeAlso: #P0756,#P0716,#P0717
  5509.  
  5510. Bitfields for VGA "CR24" Attribute Controller Toggle register:
  5511. Bit(s)    Description    (Table P0709)
  5512.  7-3    current attribute controller index
  5513.  2    palette address source
  5514.  1    reserved
  5515.  0    state of attribute-controller flip-flop (0 = index, 1 = data)
  5516. Note:    this register was not documented for the original IBM VGA; this
  5517.        description is from the C&T Wingine documentation
  5518. SeeAlso: #P0708,#P0718
  5519.  
  5520. (Table P0710)
  5521. Values for MCGA (only) CRT Controller register index:
  5522.  00h-0Fh    same as MDA/CGA (see #P0654)
  5523.  10h -W mode control register (defaults 18h, 1Ah, 19h) (see #P0711)
  5524.  10h R-    mode control status register (see #P0712)
  5525.  11h -W    interrupt control register (default 30h) (see #P0713)
  5526.  12h RW    character generator/sync polarity register (see #P0714)
  5527.  12h R-    display sense register (int. control reg [11h] bit7=1)
  5528.     bit 7-2     : not used
  5529.     bit 1-0     : pins 11 & 12 in monitor cable
  5530.         00b = reserved
  5531.         01b = analogue monochrom monitor
  5532.         10b = analogue color graphics monitor
  5533.         11b = no monitor
  5534.  13h -W character font pointer register (see #P0710)
  5535.     only 00h, 10h, 20h, 30h (default 00h) are allowed here
  5536.       for textmode fonts at A0000, A2000, A4000, A6000
  5537.  14h -W    number of characters to load during vert. retrace period (default FFh)
  5538. Note:    registers 10h-14h can appear at PORT 03D5h only, not at 03B5h
  5539. SeeAlso: #P0654,#P0708,#P0756,#P0715
  5540.  
  5541. Bitfields for MCGA (only) CRT mode control register:
  5542. Bit(s)    Description    (Table P0711)
  5543.  7    suppress hsync/vsync
  5544.  6    reserved (0)
  5545.  5    reserved
  5546.  4    dot clock rate
  5547.  3    refresh calculations in 80x25 modes
  5548.  2    reserved
  5549.  1    videomode 11h active
  5550.  0    videomode 13h active
  5551. SeeAlso: #P0710,#P0712
  5552.  
  5553. Bitfields for MCGA (only) CRT mode control status register:
  5554. Bit(s)    Description    (Table P0712)
  5555.  7    status bit0 CGA mode control register
  5556.  6    reserved
  5557.  5    clockrate 640 pixel, =0: clockrate/2 320 pixel
  5558.  4    clock rate is 25,175Mhz
  5559.  3    currently in textmode
  5560.  2    double-scan activated
  5561.  1    videomode 11h active
  5562.  0    videomode 13h active
  5563. SeeAlso: #P0710,#P0711
  5564.  
  5565. Bitfields for MCGA (only) CRT interrupt control register:
  5566. Bit(s)    Description    (Table P0713)
  5567.  7    set output driver to tristate
  5568.     =0: for reading of character generator reg (12h)
  5569.     =1: for reading of display sense register (12h)
  5570.  6   R    intr generated by memory controller
  5571.  5    =0 requested intr ok to handle
  5572.  4    =0 free interrupt latch register
  5573.  3-0    reserved
  5574. SeeAlso: #P0710
  5575.  
  5576. Bitfields for MCGA (only) CRT character generator/sync polarity register:
  5577. Bit(s)    Description    (Table P0714)
  5578.  7    character generator active
  5579.  6    =1 load codepage during display
  5580.     =0 load codepage during retrace
  5581.  5    codepage number (0,1)
  5582.  4    512 characters active
  5583.  3    reserved (0)
  5584.  2    enable hsync/vsync
  5585.  1    positive vsync polarity
  5586.  0    positive hsync polarity
  5587. Note:    default 46h in all modes, except 04h in mode 11h)
  5588. SeeAlso: #P0710
  5589. --------V-P03D403D5--------------------------
  5590. PORT 03D4-03D5 - Chips&Technologies VIDEO CHIPS - EXTENDED CRT CONTROL REGISTERS
  5591. SeeAlso: PORT 03D4h"COLOR VIDEO",PORT 03D4h"Tseng"
  5592.  
  5593. 03D4  RW  CRT control register index (see #P0715)
  5594. 03D5  RW  CRT control register value
  5595.  
  5596. (Table P0715)
  5597. Values for Chips&Technologies CRT Controller register index:
  5598.  00h-18h same as EGA/VGA (see #P0708)
  5599.  22h    same as VGA (see #P0708)
  5600.  24h    same as VGA (see #P0708)
  5601. ---C&T 82C4xx---
  5602.  D3h RW "RD3" 82C426: gray-level control 1 !!!chips\82c426.pdf p.16
  5603.  D4h RW "RD4" 82C426: gray-level control 2
  5604.  D5h RW "RD5" 82C426: general purpose
  5605.  D6h RW "RD6" 82C426: sleep
  5606.  D7h RW "RD7" 82C426: panel size
  5607.  D8h RW "RD8" 82C426: panel configuration
  5608.  D9h RW "RD9" AC control   !!!chips\82c425.pdf p.27
  5609.  DAh RW "RDA" threshold
  5610.  DBh RW "RDB" shift parameter
  5611.  DCh RW "RDC" horizontal sync width
  5612.  DDh RW "RDD" vertical sync width / blink control
  5613.  DEh RW "RDE" timing control
  5614.  DFh RW "RDF" function control
  5615. SeeAlso: #P0654,#P0710,#P0756,#P0716
  5616. --------V-P03D403D5--------------------------
  5617. PORT 03D4-03D5 - Cirrus Logic VIDEO CHIPS - EXTENDED CRT CONTROL REGISTERS
  5618. SeeAlso: PORT 03D4h"COLOR VIDEO",PORT 03D4h"Tseng"
  5619.  
  5620. 03D4  RW  CRT control register index (see #P0716)
  5621. 03D5  RW  CRT control register value
  5622.  
  5623. (Table P0716)
  5624. Values for Cirrus Logic CRT Controller register index:
  5625.  00h-18h same as EGA/VGA (see #P0708)
  5626. ---Cirrus CL-GD7556---
  5627.  19h    "CR19" Interlace End
  5628.  1Ah    "CR1A" miscellaneous control
  5629.  1Bh    "CR1B" extended display control
  5630.  1Ch    "CR1C" horizontal total and sync
  5631.  1Dh    "CR1D" color key compare type
  5632.  22h    same as VGA (see #P0708)
  5633.  24h    same as VGA (see #P0708)
  5634.  25h    "CR25" revision
  5635.  26h    "CR26" attribute controller index readback
  5636.  27h    "CR27" device identification
  5637.  30h    "CR30" TV-OUT control
  5638.  31h    "CR31" Video Window horizontal upscaling coefficient
  5639.  32h    "CR32" Video Window vertical upscaling coefficient
  5640.  33h    "CR33" Video Window horizontal start (high)
  5641.  34h    "CR34" Video Window horizontal start (low)
  5642.  35h    "CR35" Video Window brightness
  5643.  36h    "CR36" Video Window vertical position extension
  5644.  37h    "CR37" Video Window vertical start
  5645.  38h    "CR38" Video Window vertical height
  5646.  ...
  5647.  42h    "CR42" Video Window FIFO threshold / chroma-key mode
  5648.  50h    "CR50" V-Port hardware configuration
  5649.  ...
  5650.  5Fh    "CR5F" V-Port capture window start address (low)
  5651.  80h    "CR80" power management control
  5652.  ...
  5653.  91h    "CR91" shading map offset
  5654.  A0h    "CRA0" CRT horizontal 8-dot character clock
  5655.  ...
  5656.  BFh    "CRBF" CRT vertical back porch
  5657. !!! details to be added
  5658. SeeAlso: #P0654,#P0756,#P0717
  5659. --------V-P03D403D5--------------------------
  5660. PORT 03D4-03D5 - S3 VIDEO CHIPS - EXTENDED CRT CONTROL REGISTERS
  5661. SeeAlso: PORT 03D4h"COLOR VIDEO",PORT 03D4h"Tseng"
  5662.  
  5663. 03D4  RW  CRT control register index (see #P0717)
  5664. 03D5  RW  CRT control register value
  5665.  
  5666. (Table P0717)
  5667. Values for S3, Inc. CRT Controller register index:
  5668.  00h-18h same as EGA/VGA (see #P0708)
  5669.  22h    same as VGA (see #P0708)
  5670.  24h    "CR24" attribute controller index/data status
  5671.  26h R- "CR24" (duplicate of 24h)
  5672.  2Dh R- "CR2D" new Chip ID (high) (same as high byte of PCI device ID)
  5673.  2Eh R- "CR2E" new chip ID (low) (same as low byte of PCI device ID)
  5674.         10h Trio32
  5675.         11h Trio64
  5676.  2Fh R- "CR2F" S3 7xx/866/x68: chipset revision
  5677.         chip ID 8811h is Trio64/64V+; revision 4xh or 5xh is Trio64V+
  5678.  30h RW    "CR30" chip ID/revision (see #P0719)
  5679.  31h RW    "CR31" memory configuration (see #P0720)
  5680.  32h RW "CR32" backward compatibility 1 (see #P0721)
  5681.  33h RW "CR33" backward compatibility 2 (see #P0722)
  5682.  34h RW "CR34" backward compatibility 3 (see #P0723)
  5683.  35h RW "CR35" CRT register lock (see #P0724)
  5684.  36h R    "CR36" Reset State read 1 (see #P0725)
  5685.  37h R    "CR37" Reset State read 2 (see #P0726)
  5686.  38h RW    "CR38" S3 Register lock 1
  5687.     set reg 38h to 48h and reg 39h to A5h to unlock other S3 registers
  5688.  39h RW    "CR39" S3 Register lock 2
  5689.  3Ah RW "CR3A" S3 Miscellaneous 1 (see #P0727)
  5690.     bit 4: ???
  5691.  3Bh RW "CR3B" Data Transfer Execute position (see #P0728)
  5692.  3Ch RW "CR3C" Interlace Retrace start position (see also #P0730)
  5693.  40h RW "CR40" System Configuration (see #P0729)
  5694.  41h    "CR41" BIOS Flag register (used by S3 BIOS)
  5695.  42h RW "CR42" mode control (see #P0730)
  5696.  43h RW "CR43" extended mode (see #P0731)
  5697.  45h RW "CR45" hardware graphics cursor mode (see #P0732)
  5698.  46h RW "CR46" hardware cursor origin X (hi), bits 2-0 only
  5699.  47h RW "CR47" hardware cursor origin X (lo)
  5700.     testing that register 47h can be read and written once the S3 registers
  5701.       are unlocked is used as an S3 installation check
  5702.  48h RW    "CR48" hardware cursor origin Y (hi), bits 2-0 only
  5703.     the cursor X/Y position is latched on writing the high byte of Y
  5704.  49h RW "CR49" hardware cursor origin Y (lo)
  5705.  4Ah RW "CR4A" hardware graphics cursor foreground stack
  5706.     read register 45h, then write 2 or 3 color bytes (16/24-bit color)
  5707.       to specify foreground color of hardware cursor
  5708.  4Bh RW "CR4B" hardware graphics cursor background stack
  5709.     read register 45h, then write 2 or 3 color bytes (16/24-bit color)
  5710.       to specify background color of hardware cursor
  5711.  4Ch RW "CR4C" hardware graphics cursor map start address (hi), bits 3-0 only
  5712.  4Dh RW "CR4D" hardware graphics cursor map start address (lo)
  5713.  4Eh RW "CR4E" hardware cursor pattern start X (bits 5-0 only)
  5714.  4Fh RW "CR4F" hardware cursor pattern start Y (bits 5-0 only)
  5715.  50h RW "CR50" S3 801+: Extended System Control 1 (see #P0733)
  5716.  51h RW "CR51" S3 801+: Extended System Control 2 (see #P0734)
  5717.  52h RW "CR52" S3 801+: Extended BIOS Flag 1
  5718.         bits 7-6 are sync polarities (see #P0669) for Diamond cards
  5719.  53h RW "CR53" S3 801+: Extended Memory Control 1 (see #P0735)
  5720.  54h RW "CR54" S3 801+: Extended Memory Control 2 (see #P0736,#P0737)
  5721.  55h RW "CR55" S3 801+: Extended Video DAC Control (see #P0738)
  5722.  56h RW "CR56" S3 801+: External Sync Control 1 (see #P0739)
  5723.  57h RW "CR57" S3 801+: External Sync Control 2 (see #P0740)
  5724.  58h RW "CR58" S3 801+: Linear Address Window Control (see #P0741)
  5725.  59h RW "CR59" S3 801+: Linear Address Window Position (bits 31-24)
  5726.  5Ah RW "CR5A" S3 801+: Linear Address Window Position (bits 23-16)
  5727.     Notes:    the address is forced to be a multiple of the memory window
  5728.           size (see #P0741) by ignoring the lowest bits
  5729.         for Trio64 new memory-mapped I/O, the LAW must be on a 64M
  5730.           boundary
  5731.  5Bh RW "CR5B" S3 801+: Extended BIOS Flag 2
  5732.  5Ch RW "CR5C" S3 801+: General Output Port (see #P0742)
  5733.  5Dh RW "CR5D" S3 801+: Extended Horizontal Overflow (see #P0743)
  5734.  5Eh RW "CR5E" S3 801+: Extended Vertical Overflow (see #P0744)
  5735.  5Fh RW "CR5F" S3 928/964: Bus Grant Termination Position
  5736.  60h RW "CR60" S3 864/964: extended memory control 3 (see #P0745)
  5737.  61h RW "CR61" S3 864/964/Trio: extended memory control 4 (see #P0746)
  5738.  62h RW "CR62" S3 864/964: extended memory control 5
  5739.  63h RW "CR63" S3 864/964: external sync delay adjustment (high) (see #P0747)
  5740.  64h RW "CR64" S3 864/964: genlocking adjustment
  5741.  65h RW "CR65" S3 864/964: extended miscellaneous control (see #P0748)
  5742.  66h RW "CR66" S3 864/964: extended miscellaneous control 1 (see #P0749)
  5743.  67h RW "CR67" S3 864/964: extended miscellaneous control 2 (see #P0750)
  5744.  67h RW "CR67" S3 Trio32/64: extended miscellaneous control 2 (see #P0751)
  5745.  68h RW "CR68" S3 864/964: configuration 3 (see #P0752)
  5746.  69h RW "CR69" S3 864/964: extended system control 3 (see #P0753)
  5747.  6Ah RW "CR6A" S3 864/964: extended system control 4
  5748.         (bits 5-0 = offset of 64K bank)
  5749.  6Bh RW "CR6B" S3 864/964: extended BIOS flag 3
  5750.  6Ch RW "CR6C" S3 864/964: extended BIOS flag 4
  5751.  6Dh RW "CR6D" S3 864/964: extended miscellaneous control
  5752.  6Dh RW "CR6D" S3 Trio64V+: extended BIOS flag 5 (reserved for BIOS)
  5753.  6Eh RW "CR6E" S3 Trio64V+: extended BIOS flag 6 (reserved for BIOS)
  5754.  6Fh RW "CR6F" S3 Trio64V+: configuration 4 (see #P0755)
  5755. SeeAlso: #P0654,#P0710,#P0756,#P0716,#P0715
  5756.  
  5757. Bitfields for S3 "CR24" Attribute Index register:
  5758. Bit(s)    Description    (Table P0718)
  5759.  7    inverse of current state of internal address flip-flop
  5760.  6    reserved (0)
  5761.  5    video display is enabled (mirror of PORT 03C0h bit 5)
  5762.  4-0    current attribute contorller index (from PORT 03C0h)
  5763. SeeAlso: #P0708,#P0709,PORT 03C0h
  5764.  
  5765. (Table P0719)
  5766. Values for S3 chip ID/Revision register "CR30":
  5767.  81h    86c911
  5768.  82h    86c911A/924
  5769.  90h    86c928 (original)
  5770.  ...
  5771.  A0h    86c801/805 A-step or B-step
  5772.  ...
  5773.  B0h    86c928 PCI
  5774.  C0h    Vision864
  5775.  C1h    Vision864P
  5776.  D0h    Vision964
  5777.  D1h    Vision964P
  5778.  Exh    Trio32/64, 86c866, 86c868, 86c968; actual ID and revision stored in
  5779.       PORT 03B5h registers 2Dh, 2Eh, and 2Fh
  5780. SeeAlso: #P0720
  5781.  
  5782. Bitfields for S3 "CR31" memory configuration register:
  5783. Bit(s)    Description    (Table P0720)
  5784.  7    (except 864/964) enable BIOS ROM address space C6800h-C7FFFh
  5785.     (Trio64V+) reserved
  5786.  6    enable page-mode memory access for text-mode font access
  5787.  5-4    display start address, bits 17&16.  See also registers 51h and 69h
  5788.  3    video memory above 256K accessible
  5789.  2    VGA 16-bit memory bus (clear for 8-bit memory bus)
  5790.  1    two-page screen image (enables 2048-pixel wide screen)
  5791.  0    enable base-address offset (turn on bank-switched operation)
  5792. SeeAlso: #P0708,#P0719,#P0721
  5793.  
  5794. Bitfields for S3 "CR32" Backwards Compatibility 1 register:
  5795. Bit(s)    Description    (Table P0721)
  5796.  7    (928,964) tri-state serial output pins SC, SOE0, and SXNR
  5797.  6    fix VGA screen page using display start address bits 16&17 (see #P0720)
  5798.     (Trio64V+) force wrap on 256K boundary even when display start address
  5799.       changed
  5800.  5    ???
  5801.  4    enable hardware interrupts
  5802.  3    backward-compatible modes (set for MDA/CGA/EGA/HGC)
  5803.  2    force full character clock for horizontal timing (CGA/HGC emulation),
  5804.       rather than 1/2 dot clock rate
  5805.  1-0    character clock period
  5806.     00 IBM-compatible, 8 or 9 dots
  5807.     01 7 dots
  5808.     10 9 dits
  5809. Note:    on the Trio64V+, bits 7, 5, and 3-0 are reserved
  5810. SeeAlso: #P0720,#P0722,#M0076
  5811.  
  5812. Bitfields for S3 "CR33" Backwards Compatibility 2 register:
  5813. Bit(s)    Description    (Table P0722)
  5814.  7    override CGA "enable video" at PORT 03D8h bit 3
  5815.  6    lock palette/overscan registers
  5816.  5    blank signal does not include border area, is same as display enable
  5817.  4    disable writes to RamDAC
  5818.  3    VCLK is internal DCLK rather than inverted DCLK/2 or external VCLK
  5819.  2    reserved (Trio32/64)
  5820.  1    disable VDE protection (PORT 03D4h register 11h bit 7 will not act
  5821.       on PORT 03D4h register 7h bits 1 and 6)
  5822.  0    reserved (Trio32/64)
  5823. Note:    on the Trio64V+, bits 7, 2, and 0 are reserved
  5824. SeeAlso: #P0708,#P0721,#P0723
  5825.  
  5826. Bitfields for S3 "CR34" Backwards Compatibility 3 register:
  5827. Bit(s)    Description    (Table P0723)
  5828.  7-5    (Trio32/64/64V+) reserved
  5829.  7    lock PORT 03C2h bits 2,3
  5830.  5    lock SR1 bit 5
  5831.  4    enable Start Display FIFO Fetch register (CR3B) (see #398)
  5832.  3    (Trio32/64/64V+) reserved
  5833.  2    PCI retries not handled during DAC cycles (requires bit 0 clear)
  5834.  1    do not handle PCI master aborts during DAC cycles (requires bit 0 clear)
  5835.  0    disable PCI master aborts/retries during DAC cycles
  5836. SeeAlso: #P0722,#P0724
  5837.  
  5838. Bitfields for S3 "CR35" Register Lock register:
  5839. Bit(s)    Description    (Table P0724)
  5840.  7-6    (Trio32/Trio64) reserved
  5841.  5    lock horizontal timing registers
  5842.  4    lock vertical timing registers
  5843.  3-0    CPU base address (in 64K units), bits 17-14
  5844. SeeAlso: #P0708,#P0723,#P0725
  5845.  
  5846. Bitfields for S3 "CR36" Configuration 1 register:
  5847. Bit(s)    Description    (Table P0725)
  5848.  7-5    video memory size
  5849.     111 less than 1M
  5850.     110 one meg
  5851.     100 two megs
  5852.     010 three megs
  5853.     000 four megs
  5854.     101 six megs
  5855.     011 eight megs
  5856.  4    (Trio32/64, VL-Bus only) enable video BIOS accesses
  5857.  3-2    (Trio32/64) memory type
  5858.     00 reserved
  5859.     01 reserved
  5860.     10 EDO
  5861.     11 fast page mode
  5862.  1-0    (Trio32/64) system bus type
  5863.     00 reserved
  5864.     01 VESA local bus
  5865.     10 PCI
  5866.     11 reserved
  5867. Note:    the default value of this register is latched from external pins at
  5868.       power-up; bits 1-0 are read-only
  5869. SeeAlso: #P0708,#P0724,#P0726
  5870.  
  5871. Bitfields for S3 "CR37" Configuration 2 register:
  5872. Bit(s)    Description    (Table P0726)
  5873.  7-5    monitor type
  5874.  7-5    (Trio64V+) reserved
  5875.  4    (VL-Bus) enable RAMDAC write snooping
  5876.  3    use internal DCLK/MCLK (clear this bit for testing only)
  5877.  2    (VL-Bus) video BIOS ROM size (=0 64K, =1 32K)
  5878.  1    test mode select (=0 tri-state all outputs, =1 normal operation)
  5879.  1    (Trio64V+) reserved
  5880.  0    (VL-Bus) enable Trio chip (if 0, disabled except for video BIOS access)
  5881. Notes:    the default value of this register is latched from external pins at
  5882.       power-up
  5883.     the description of this register is based on the Trio32/Trio64/Trio64V+
  5884.       documentation and may vary somewhat for other S3 chips
  5885. SeeAlso: #P0708,#P0725
  5886.  
  5887. Bitfields for S3 "CR3A" Miscellaneous 1 register:
  5888. Bit(s)    Description    (Table P0727)
  5889.  7    disable PCI burst read cycles
  5890.     (must set CR66 bit 7 before setting this bit)
  5891.  6    reserved
  5892.  5    enable high-speed text font writes (only required for DCLK > 40MHz)
  5893.  4    enable >= 8 bpp color enhanced modes
  5894.  3    enable top-of-memory access (simultaneous VGA text and enhanced mode)
  5895.  2    enable alternate refresh count control (bits 1-0)
  5896.     when enabled, bits 1-0 override CR11 bit 6
  5897.  1-0    alternate refresh count: number of refresh cycles per scan line
  5898. Note:    the description of this register is based on the Trio32/Trio64/Trio64V+
  5899.       documentation and may vary somewhat for other S3 chips
  5900. SeeAlso: #P0708
  5901.  
  5902. Bitfields for S3 "CR3B" Start Display FIFO Register:
  5903. Bit(s)    Description    (Table P0728)
  5904.  7-0    bits 7-0 of time in characters clocks from start of active display
  5905.       until FIFO data fetching restarts after start of horizontal blanking
  5906.       (bit 8 is in CR5D bit 6)
  5907. Note:    the value for this register is typically CR0 less 5, and helps ensure
  5908.       adequate time for RAM refresh, etc. taht require control of display
  5909.       memory
  5910. SeeAlso: #P0708
  5911.  
  5912. Bitfields for S3 "CR40" System Configuration register:
  5913. Bit(s)    Description    (Table P0729)
  5914.  7-6    reserved (0)
  5915.  5    reserved ("WDL_DELAY") (1)
  5916.  4    (VL-Bus) Ready Control
  5917.     =0 zero wait-states from -SADS to -SRDY
  5918.     =1 minimum one wait state (controlled by CR58 bit 3)
  5919.  3-1    reserved (0)
  5920.  0    enable enhanced (8514/A superset) register access at PORT x2E8h
  5921. SeeAlso: #P0708
  5922.  
  5923. Bitfields for S3 "CR42" Mode Control register:
  5924. Bit(s)    Description    (Table P0730)
  5925.  7-6    reserved (0)
  5926.  5    interlaced video
  5927.  4-0    reserved
  5928. Note:    bit 5 also enables CR3C
  5929. SeeAlso: #P0708,#P0731
  5930.  
  5931. Bitfields for S3 "CR43" Extended Mode register:
  5932. Bit(s)    Description    (Table P0731)
  5933.  7    double horizontal CRT parameters (CRTC registers 00h, etc.)
  5934.  6-3    reserved (0)
  5935.  3    (Trio64V+) ??? used by BIOS, officially reserved
  5936.  2    logical screen width (CR13), bit 8
  5937.  1-0    reserved (0)
  5938. Note:    bit 2 is disabled unless CR51 bits 5-4=00
  5939. SeeAlso: #P0708,#P0730
  5940.  
  5941. Bitfields for S3 "CR45" Hardware Graphics Cursor Mode register:
  5942. Bit(s)    Description    (Table P0732)
  5943.  7-5    reserved (0)
  5944.  4    enable Hardware Cursor Right Storage (last 256 bytes of 1K line, or
  5945.       last 512 bytes of 2K line)
  5946.  3-1    reserved (0)
  5947.  0    enable hardware graphics cursor in Enhanced (8514/A) mode
  5948. SeeAlso: #P0708
  5949.  
  5950. Bitfields for S3 "CR50" Extended System Control 1 register:
  5951. Bit(s)    Description    (Table P0733)
  5952.  7-6    Graphics Engine screen width
  5953.     (note: bit 0 below is MSB for the following)
  5954.     000 = 1024 (2048 if CR31 bit 1 set)
  5955.     001 = 640
  5956.     010 = 800 (1600x1200x4 if PORT 4AE8h bit 2 set)
  5957.     011 = 1280
  5958.     100 = 1152
  5959.     101 reserved
  5960.     110 = 1600
  5961.     111 reserved
  5962.  5-4    pixel length for command execution through Graphics Engine (8514/A)
  5963.     00 one byte (4 or 8 bits/pixel)
  5964.     01 two bytes (16 bpp)
  5965.     10 reserved
  5966.     11 four bytes (32 bpp)
  5967.  3    reserved (0)
  5968.  2    enable -BREQ/-BGNT functions (reserved on Trio64V+)
  5969.  1    reserved (0)
  5970.  0    bit 2 of Graphics Engine screen width (refer to bits 7-6 above)
  5971. SeeAlso: #P0708,#P0735,#P0734
  5972.  
  5973. Bitfields for S3 "CR51" Extended System Control 2 register:
  5974. Bit(s)    Description    (Table P0734)
  5975.  7-6    reserved (0)
  5976.  5-4    logical screen width, bits 9-8
  5977.  3-2    CPU base address, bits 19-18
  5978.  1-0    display start address, bits 19-18
  5979. Notes:    if the upper four bits of the display start address have been set via
  5980.       CR69 bits 3-0, then bits 1-0 and CR31 bits 5-4 are ignored
  5981.     if the upper 6 base address bits have been set via CR6A bits 5-0, then
  5982.       bits 3-2 and CR35 bits 3-0 are ignored
  5983. SeeAlso: #P0708,#P0733
  5984.  
  5985. Bitfields for S3 "CR53" Extended Memory Control 1 register:
  5986. Bit(s)    Description    (Table P0735)
  5987.  7    reserved
  5988.  6    (Trio32/64/64V+) swap nybbles in each byte of video memory read or
  5989.       written
  5990.  5    (801/805) memory interleaving
  5991.     (928) pixel multiplexing
  5992.     (Trio64V+) enable memory-mapped I/O at B8000h-BFFFFh instead of
  5993.       A0000h-AFFFFh (only takes effect if bits 4-3=10)
  5994.  4    enable memory-mapped I/O (Trio32, Trio64 and Trio64V+)
  5995.  3    enable new memory-mapped I/O (Trio64V+)
  5996.  2-1    (Trio64V+) byte swapping for linear addressing
  5997.     00 none (default)
  5998.     01 swap bytes of word
  5999.     10 swap all bytes of doublewords
  6000.     11 reserved
  6001.     (used for big-endian addressing)
  6002.  0    (Trio32/64) enable write per bit
  6003.     (Trio64V+) reserved
  6004. SeeAlso: #P0708,#P0736
  6005.  
  6006. Bitfields for S3 Trio32/64 "CR54" Extended Memory Control 2 register:
  6007. Bit(s)    Description    (Table P0736)
  6008.  7-3    "M" number of 8-byte memory cycles not dedicated to filling display
  6009.       FIFO (less one)
  6010.  2-0    reserved (0)
  6011. SeeAlso: #P0737,#P0708,#P0735
  6012.  
  6013. Bitfields for S3 Trio64V+ "CR54" Extended Memory Control 2 register:
  6014. Bit(s)    Description    (Table P0737)
  6015.  2,7-3    "M" maximum number of 8-byte memory cycles before LPB/CPU/Graphics
  6016.       Engine must yield the memory bus
  6017.  1-0    big-endian byte-swapping (except for linear addressing/image writes)
  6018.     00 none (default)
  6019.     01 swap bytes within a word
  6020.     10 swap all bytes within a doubleword
  6021.     11 swap according to bus' byte-enable lines
  6022.         BE#[3:0]=0000 swap all bytes
  6023.         BE#[3:0]=0011 or 1100 swap bytes within selected word
  6024.         else no swapping
  6025. SeeAlso: #P0708,#P0736 
  6026.  
  6027. Bitfields for S3 "CR55" Extended RAMDAC Control register:
  6028. Bit(s)    Description    (Table P0738)
  6029.  7    tri-state VCLK output
  6030.  6-5    reserved (0)
  6031.  4    hardware cursor mode
  6032.     =0 MS-Windows
  6033.     =1 X11
  6034.  3    reserved (0)
  6035.  2    enable General Input Port read (at PORT 03C8h)
  6036.  1-0    reserved (0)
  6037. SeeAlso: #P0708
  6038.  
  6039. Bitfields for S3 "CR56" External Sync Control 1 register:
  6040. Bit(s)    Description    (Table P0739)
  6041.  7-5    reserved (0)
  6042.  4    preset frame select
  6043.     =0 start with odd frame after V-counter reset
  6044.     =1 start with even frame
  6045.  3    reset only vertical counter on falling edge of VSYNC input when
  6046.       genlocking
  6047.  2    tri-state VSYNC output
  6048.  1    tri-state HSYNC output
  6049.  0    enable VSYNC input for genlocking
  6050. Note:    bits 4-3 are reserved on the Trio64V+
  6051. SeeAlso: #P0708,#P0740
  6052.  
  6053. Bitfields for S3 "CR57" External Sync Control 2 register:
  6054. Bit(s)    Description    (Table P0740)
  6055.  7-0    delay in scan lines from falling edge of VSYNC to reset of V-counter
  6056. Note:    this register must NOT be 00h when genlocking is enabled (CR56 bit 0)
  6057. SeeAlso: #P0708,#P0739
  6058.  
  6059. Bitfields for S3 "CR58" Linear Addressing Control register:
  6060. Bit(s)    Description    (Table P0741)
  6061.  7    RAS Pre-Charge time adjust
  6062.     =0 CR68 bit 3 defines pre-charge time
  6063.     =1 decrease pre-charge time by 0.5 MCLKs, increase RAS time by 0.5 MCLKs
  6064.  6-5    reserved
  6065.  4    enable linear addressing (see also #P1022)
  6066.  3    (VL-Bus) addresses latched in T1 cycle, instead of delaying one clock
  6067.       until T2 cycle; only in effect when CR40 bit 4 is set
  6068.  2    reserved
  6069.  1-0    linear address window size
  6070.     00 = 64K (not available when new MMIO enabled)
  6071.     01 = 1M
  6072.     10 = 2M
  6073.     11 = 4M (Trio64/64V+, not Trio32)
  6074. Note:    this description is based on the Trio32/Trio64 documenation; the
  6075.       bits may vary slightly for other S3 chips
  6076. SeeAlso: #P0723
  6077.  
  6078. Bitfields for S3 "CR5C" General Output Port:
  6079. Bit(s)    Description    (Table P0742)
  6080.  7-0    system-specific
  6081. ---Diamond---
  6082.  0    ???
  6083.  1    ???
  6084. ---STB Pegasus---
  6085.  7    map video memory with bits 31-26 = 011111
  6086. SeeAlso: #P0708
  6087.  
  6088. Bitfields for S3 "CR5D" Extended Horizontal Overflow register:
  6089. Bit(s)    Description    (Table P0743)
  6090.  7    bit 8 of Bus-Grant Terminate Position (CR5F)
  6091.     (Trio64V+) reserved
  6092.  6    bit 8 of Start FIFO Fetch (CR3B)
  6093.  5    extend horizontal sync pulse by 32 DCLKs
  6094.  4    bit 8 of Start Horizontal Sync Position (CR4)
  6095.  3    extend horizontal blank pulse by 64 DCLKs
  6096.  2    bit 8 of Start Horizontal Blank (CR2)
  6097.  1    bit 8 of Horizontal Display End (CR1)
  6098.  0    bit 8 of Horizontal Total (CR0)
  6099. SeeAlso: #P0708,#P0744
  6100.  
  6101. Bitfields for S3 "CR5E" Extended Vertical Overflow register:
  6102. Bit(s)    Description    (Table P0744)
  6103.  7    reserved (0)
  6104.  6    line compare position (CR18), bit 10
  6105.  5    reserved (0)
  6106.  4    vertical retrace start (CR10), bit 10
  6107.  3    reserved (0)
  6108.  2    start of vertical blank (CR15), bit 10
  6109.  1    vertical display end (CR12), bit 10
  6110.  0    vertical total (CR6), bit 10
  6111. SeeAlso: #P0708,#P0743
  6112.  
  6113. Bitfields for S3 Trio32/64 "CR60" Extended Memory Control 3 register:
  6114. Bit(s)    Description    (Table P0745)
  6115.  7-0    "N" maximum number of 4-byte (1M video memory) or 8-byte (2M/4M) units
  6116.       written to display FIFO in an uninterruptible burst
  6117. SeeAlso: #P0708,#P0746
  6118.  
  6119. Bitfields for S3 Trio64V+ "CR61" Extended Memory Control 4 register:
  6120. Bit(s)    Description    (Table P0746)
  6121.  7    reserved
  6122.  6-5    byte-swapping for image writes
  6123.     00 none (default)
  6124.     01 swap bytes within each word
  6125.     10 swap all bytes within a doubleword
  6126.     11 reserved
  6127.  4-0    reserved
  6128. SeeAlso: #P0708,#P0745
  6129.  
  6130. Bitfields for S3 Trio32/64 "CR63" External Sync Control 3 register:
  6131. Bit(s)    Description    (Table P0747)
  6132.  7-4    character clock reset delay
  6133.  3-0    HSYNC reset adjustment, in character clocks
  6134. Notes:    these two values are used to align the external and internally-generated
  6135.       video during genlocking
  6136.     this register is not documented for the Trio64V+, and may not exist
  6137. SeeAlso: #P0708
  6138.  
  6139. Bitfields for S3 Trio32/64/64V+ "CR65" Extended Miscellaneous Control register:
  6140. Bit(s)    Description    (Table P0748)
  6141.  7-5    reserved (0)
  6142.  4-3    (Trio32/64V+) delay -BLANK by N DCLKs
  6143.     a two-DCLK delay is required for color mode 12
  6144.  2    video subsystem setup address
  6145.     (Trio64V+) reserved
  6146.     =0 PORT 46E8h
  6147.     =1 PORT 03C3h
  6148.  1-0    reserved (0)
  6149. SeeAlso: #P0708,#P0749
  6150.  
  6151. Bitfields for S3 Trio32/64/64V+ "CR66" Extended Miscellaneous Control 1 reg:
  6152. Bit(s)    Description    (Table P0749)
  6153.  7    enable PCI bus disconnect on misaligned burst memory accesses
  6154.  6    tri-state pixel address bus
  6155. ---Trio32/64---
  6156.  5-0    reserved (0)
  6157. ---Trio64V+ ---
  6158.  5    ??? (officially reservd, but set by BIOS)
  6159.  4    reserved
  6160.  3    generate PCI bus disconnect when trying to write to a full FIFO or read
  6161.       from an empty FIFO
  6162.     (bit 7 must also be set to enable this feature)
  6163.  2    reserved
  6164.  1    software reset graphics engine
  6165.  0    enable enhanced functions (this is a mirror of
  6166.       PORT 4AE8h bit 0)
  6167. SeeAlso: #P0708,#P0748,PORT 4AE8h
  6168.  
  6169. Bitfields for S3 864/964 "CR67" Extended Miscellaneous Control 2 register:
  6170. Bit(s)    Description    (Table P0750)
  6171.  7-4    color mode???
  6172.     (values of 0000/0010/0101/0111 indicate a 16-bit pixel port)
  6173.  3-2    ???
  6174. SeeAlso: #P0708,#P0723,#P0751
  6175.  
  6176. Bitfields for S3 Trio32/64/64V+ "CR67" Extended Miscellaneous Control 2 reg:
  6177. Bit(s)    Description    (Table P0751)
  6178.  7-4    color mode (see #P0688)
  6179.  3-2    (Trio32/Trio64) reserved (0)
  6180.  3-2    (Trio64V+) streams mode
  6181.     00 disable Streams Processor
  6182.     01 overlay secondary stream on VGA-mode background
  6183.     10 reserved
  6184.     11 full Streams Processor operation
  6185.  1    reserved (0)
  6186.  0    VCLK phase (=0 VCLK is inverted DCLK; =1 VCLK in phase with DCLK)
  6187. Note:    the streams mode should only be changed during vertical sync
  6188.       (PORT 03DAh bit 3)
  6189. SeeAlso: #P0708,#P0750,#P0687
  6190.  
  6191. Bitfields for S3 Trio32/64/64V+ "CR68" Configuration 3 register:
  6192. Bit(s)    Description    (Table P0752)
  6193.  7    (Trio32/64 VL-Bus) Upper Address Decode
  6194.     =0 decode all 32 bits of system address bus
  6195.     =1 SAUP input used to decode upper address lines
  6196.  7    (Trio64V+) memory data bus size
  6197.     =0 32 bits
  6198.     =1 64 bits (if >= 2M of memory)
  6199.  6-4    monitor information (used by S3 bios)
  6200.  3    RAS precharge timing (0 = 3.5 MCLKs, 1 = 2.5 MCLKs)
  6201.  2    RAS low timing (0 = 4.5 MCLKs, 1 = 3.5 MCLKs)
  6202.  1-0    -CAS and -OE stretch, -WE delay
  6203.     00 = 6.5ns stretch, 2 units delay
  6204.     01 = 5ns stretch, 1 unit delay
  6205.     10 = 3.5ns stretch, no delay
  6206.     11 = no stretch, no delay
  6207. Note:    the default value of this register is latched from external pins at
  6208.       power-up
  6209. SeeAlso: #P0708
  6210.  
  6211. Bitfields for S3 Trio32/Trio64 "CR69" Extended System Control 3 register:
  6212. Bit(s)    Description    (Table P0753)
  6213.  7-4    reserved (0)
  6214.  3-0    display start address, bits 19-16
  6215. SeeAlso: #P0708,#P0754
  6216.  
  6217. Bitfields for S3 Trio32/Trio64 "CR6A" Extended System Control 4 register:
  6218. Bit(s)    Description    (Table P0754)
  6219.  7-6    reserved
  6220.  5-0    bits 19-14 of CPU base address
  6221. Note:    CR31 bit 0 must be set to enable this register
  6222. SeeAlso: #P0708,#P0753
  6223.  
  6224. Bitfields for S3 Trio64V+ "CR6F" Configuration 4 register:
  6225. Bit(s)    Description    (Table P0755)
  6226.  7-5    reserved
  6227.  4-3    WE# delay (on both rising and falling edges)
  6228.     00 three units
  6229.     01 two units
  6230.     10 one unit
  6231.     11 no delay
  6232.  2    disable I/O PORT mirror of serial port (MMIO FF20h)
  6233.     =0 allow access via either MMIO FF20h or port selected by bit 1
  6234.  1    serial port address select (only has effect if bit 2 clear)
  6235.     =0 mirror MMIO FF20h at PORT 00E8h
  6236.     =1 mirror MMIO FF20h at PORT 00E2h
  6237.  0    configure for Trio64-compatible mode instead of LPB mode
  6238.  !!! p.19-16
  6239. SeeAlso: #P0708,MEM A000h:FF00h"S3"
  6240. --------V-P03D403D5--------------------------
  6241. PORT 03D4-03D5 - Tseng Labs VIDEO CHIPS - EXTENDED CRT CONTROL REGISTERS
  6242. SeeAlso: PORT 03D4h"COLOR VIDEO",PORT 03D4h"S3",PORT 03D4h"Cirrus"
  6243.  
  6244. 03D4  RW  CRT control register index (see #P0756)
  6245. 03D5  RW  CRT control register value
  6246.  
  6247. (Table P0756)
  6248. Values for Tseng Labs ET3000/ET4000 CRT Controller register index:
  6249.  00h-18h same as EGA/VGA (see #P0708)
  6250. ---ET3000 only---
  6251.  1Bh    x-zoom start register
  6252.     The existence of this register is often used to decide between ET3000
  6253.       and ET4000, as the ET4000 does not offer hardware-zoom features.
  6254.  1Ch    x-zoom end register
  6255.  1Dh    y-zoom start register low
  6256.  1Eh    y-zoom end register low
  6257.  1Fh    y-zoom start & end high register
  6258.  20h    zoom start address register low
  6259.  21h    zoom start address register medium
  6260.  23h    extended start address (see register 33h)
  6261.  24h    compatibility register (see register 34h)
  6262.  25h    overflow high register (see registers 35h, 07h)
  6263. ---ET4000---
  6264.  32h    RAS/CAS configuration ('key' protected) (see #P0757)
  6265.  33h    extended start address
  6266.           This register is often used to decide between ET4000
  6267.           and ET3000, when bit3-0 can be reread after write.
  6268.            bit7-4 : reserved
  6269.            bit3-2 : cursor address bit 17-16
  6270.            bit1-0 : linear start address bits 17-16
  6271.  34h    6845 compatibility control register ('key' protected)
  6272.       (see #P0758)
  6273.  35h    overflow high register (protected by 11h, bit7) (see #P0759)
  6274.  36h    video system configuration 1 ('key' protected) (see #P0760)
  6275.  37h    video system configuration 2 ('key' protected) (see #P0761)
  6276. SeeAlso: #P0654,#P0716,#P0717
  6277.  
  6278. Bitfields for ET4000 RAS/CAS configuration register:
  6279. Bit(s)    Description    (Table P0757)
  6280.  7    static column memory
  6281.     ET4000/W32i: interleave mode
  6282.  6    RAL RAS&CAS column setup time
  6283.  5    RCD RAS & CAS time
  6284.  4-3    RSP, RAS pre-charge time
  6285.  2    CPS, CAS pre-charge time
  6286.  1-0    CSW, CAS low pulse width
  6287. SeeAlso: #P0708,#P0758
  6288.  
  6289. Bitfields for ET4000 compatibility control register:
  6290. Bit(s)    Description    (Table P0758)
  6291.  7    6845 compatibility enabled
  6292.  6    ENBA enable double scan/underline in AT&T mode
  6293.  5    ENXL enable translation ROM on writing
  6294.  4    ENXR enable translation ROM on reading
  6295.  3    ENVS VSE register port address
  6296.  2    TRIS tristate ET4000 output pins
  6297.  1    CS2 MCLCK clock select 2
  6298.  0    EMCK enable translation of CS0 bit
  6299. SeeAlso: #P0708,#P0757,#P0759
  6300.  
  6301. Bitfields for ET4000 overflow high register:
  6302. Bit(s)    Description    (Table P0759)
  6303.  7    vertical interlace mode
  6304.  6    alternate RMW control
  6305.  5    external sync reset (gen-lock) the line/chr counter
  6306.  4    line compare bit10
  6307.  3    vertical sync start bit10
  6308.  2    vertical display end bit10
  6309.  1    vertical total bit10
  6310.  0    vertical blank start bit10
  6311. SeeAlso: #P0708,#P0758,#P0760
  6312.  
  6313. Bitfields for ET4000 video system configuration 1 register:
  6314. Bit(s)    Description    (Table P0760)
  6315.  7    enable 16bit I/O read/write
  6316.  6    enable 16bit display memory read/write
  6317.  5    addressing mode (0=IBM, 1=TLI)
  6318.  4    0=segment / 1=linear system configuration
  6319.  3    font width control (1=up to 16bit, 0=8bit)
  6320.  2-0    refresh count per line-1
  6321. SeeAlso: #P0708,#P0759,#P0761
  6322.  
  6323. Bitfields for ET4000 video system configuration 2 register:
  6324. Bit(s)    Description    (Table P0761)
  6325.  7    DRAM display memory type (1=VRAM, 0=DRAM)
  6326.  6    test (1=TLI interal test mode)
  6327.  5    priority threshold control (0=more mem BW)
  6328.  4    disable block read-ahead
  6329.  3    display memory data depth
  6330.  2    bus read data latch control
  6331.  1-0    display memory data bus width
  6332. SeeAlso: #P0708,#P0760
  6333. ----------P03D603D7--------------------------
  6334. PORT 03D6-03D7 - CGA (Color Graphics Adapter) - MIRRORS OF 03D4/03D5
  6335.  
  6336. 03D6  -W  same as 03D4
  6337.     (under OS/2, reads return 0 if full-screen DOS session,
  6338.       nonzero if windowed DOS session)
  6339. 03D7  RW  same as 03D5
  6340. ----------P03D603D7--------------------------
  6341. PORT 03D6-03D7 - Chips&Technologies VGA - EXTENSION REGISTERS
  6342.  
  6343. 03D6  -W  extension register index (see #P0762,#P0763)
  6344. 03D7  RW  extension register data
  6345.  
  6346. (Table P0762)
  6347. Values for Chips&Technologies 64200 extension register index:
  6348.  00h    "XR00"    chip version (see #P0764)
  6349.  01h    "XR01"    configuration (see #P0765)
  6350.  02h    "XR02"    CPU interface control (see #P0767)
  6351.  03h    "XR03"    master control (see #P0768)
  6352.  04h    "XR04"    memory control (see #P0770)
  6353.  05h    "XR05"    clock control (see #P0771)
  6354.  06h    "XR06"    color palette control / DRAM interface
  6355.  07h    "XR07"    reserved
  6356.  08h    "XR08"    general purpose output select B
  6357.  09h    "XR09"    general purpose output select A
  6358.  0Ah    "XR0A"    cursor address top
  6359.  0Bh    "XR0B"    CPU paging (see #P0777)
  6360.  0Ch    "XR0C"    start address top (see #P0778)
  6361.  0Dh    "XR0D"    auxiliary offset (see #P0780)
  6362.  0Eh    "XR0E"    text mode control (see #P0781)
  6363.  0Fh    "XR0F"    configuration register 2
  6364.  10h    "XR10"    single/low map register (see #P0782)
  6365.  11h    "XR11"    high map register (see #P0783)
  6366.  14h    "XR14"    emulation mode (see #P0784)
  6367.  15h    "XR15"    write protect (see #P0785)
  6368.  16h    "XR16"    trap enable
  6369.  17h    "XR17"    trap status
  6370.  18h    "XR18"    alternate horizontal display end
  6371.  19h    "XR19"    alternate horizontal sync start / half-line
  6372.  1Ah    "XR1A"    alternate horizontal sync end (see #P0789)
  6373.  1Bh    "XR1B"    alternate horizontal total
  6374.  1Ch    "XR1C"    alternate horizontal blank start / horizontal panel size
  6375.  1Dh    "XR1D"    alternate horizontal blank end (see #P0790)
  6376.  1Eh    "XR1E"    alternate offset
  6377.  1Fh    "XR1F"    virtual EGA switch (see #P0791)
  6378.  20h    "XR20"    453 Interface ID
  6379.  21h    "XR21"    Sliding Hold A
  6380.  22h    "XR22"    Sliding Hold B
  6381.  23h    "XR23"    SHC / WBM Control
  6382.  24h    "XR24"    Flat-Panel Alternate Max Scanline / SHD / WBM Pattern
  6383.  25h    "XR25"    Flat-Panel "AltGrHVirtPanelSize" / 453 Pin Definition
  6384.  26h    "XR26"    453 Configuration
  6385.  27h    "XR27"    reserved
  6386.  28h    "XR28"    video interface (see #P0792)
  6387.  29h    "XR29"    function control
  6388.  2Ah    "XR2A"    frame interrupt count
  6389.  2Bh    "XR2B"    default video color (to be displayed when screen blanked)
  6390.  2Ch    "XR2C"    Flat-Panel VSync (FLM) Delay / force H high
  6391.  2Dh    "XR2D"    Flat-Panel HSync (LP) delay / force H low
  6392.  2Eh    "XR2E"    Flat-Panel HSync (LP) delay / force V high
  6393.  2Fh    "XR2F"    Flat-Panel HSync (LP) width / force V low
  6394.  30h    "XR30"    graphics cursor start address (high)
  6395.  31h    "XR31"    graphics cursor start address (low)
  6396.  32h    "XR32"    graphics cursor end address
  6397.  33h    "XR33"    graphics cursor X (high)
  6398.  34h    "XR34"    graphics cursor X (low)
  6399.  35h    "XR35"    graphics cursor Y (high)
  6400.  36h    "XR36"    graphics cursor Y (low)
  6401.  37h    "XR37"    graphics cursor mode
  6402.  38h    "XR38"    graphics cursor mask
  6403.  39h    "XR39"    graphics cursor color 0
  6404.  3Ah    "XR3A"    graphics cursor color 1
  6405.  3Bh    "XR3B"    reserved
  6406.  3Ch    "XR3C"    serial / row count (see #P0799)
  6407.  3Dh    "XR3D"    multiplexor mode (see #P0801)
  6408.  41h    "XR41"    virtual EGA switch register (82C453)
  6409.  44h    "XR44"    software flag register 1
  6410.  45h    "XR45"    software flag register 2 / foreground color
  6411.  50h    "XR50"    panel format
  6412.  51h    "XR51"    display type
  6413.  52h    "XR52"    power-down control / panel size
  6414.  53h    "XR53"    line graphics override
  6415.  54h    "XR54"    flat-panel interface / alternate miscellaneous output
  6416.  55h    "XR55"    horizontal compensation / text 350_A compensation
  6417.  56h    "XR56"    horizontal centering / text 350_B compensation
  6418.  57h    "XR57"    vertical compensation / text 400 compensation
  6419.  58h    "XR58"    vertical centering / graphics 350 compensation
  6420.  59h    "XR59"    vertical line insertion / graphics 400 compensation
  6421.  5Ah    "XR5A"    vertical line replication / FP vertical display start 400
  6422.  5Bh    "XR5B"    flat-panel vertical display end 400 
  6423.  5Ch    "XR5C"    weight control clock A
  6424.  5Dh    "XR5D"    weight control clock B
  6425.  5Eh    "XR5E"    ACDCLK control
  6426.  5Fh    "XR5F"    power-down mode refresh
  6427.  60h    "XR60"    blink rate control
  6428.  61h    "XR61"    SmartMap(tm) control
  6429.  62h    "XR62"    SmartMap(tm) shift parameter
  6430.  63h    "XR63"    SmartMap(tm) color mapping control
  6431.  64h    "XR64"    flat-panel alternate vertical total
  6432.  65h    "XR65"    flat-panel alternate overflow
  6433.  66h    "XR66"    flat-panel alternate vertical sync start
  6434.  67h    "XR67"    flat-panel alternate vertical sync end
  6435.  68h    "XR68"    flat-panel vertical panel size / alternate vertical DE end
  6436.  69h    "XR69"    flat-panel vertical display start 350
  6437.  6Ah    "XR6A"    flat-panel vertical display end 350
  6438.  6Bh    "XR6B"    flat-panel vertical overflow 2
  6439.  6Ch    "XR6C"    weight control clock C
  6440.  6Dh    "XR6D"    FRC control
  6441.  6Eh    "XR6E"    polynomial FRC control
  6442.  6Fh    "XR6F"    frame buffer control
  6443.  70h    "XR70"    setup/disable control (see #P0807)
  6444.  71h-7Ch    reserved
  6445.  7Dh    "XR7D"    flat-panel compensation diagnostic
  6446.  7Eh    "XR7E"    CGA/Hercules color selection (see #P0815)
  6447.  7Fh    "XR7F"    diagnostics (see #P0816)
  6448. !!! chips\64200.pdf p.28, p.72
  6449. Note:    not all C&T chips support all of the above registers; see the tables
  6450.       for the individual registers for a list of supporting chipsets
  6451. SeeAlso: #P0763
  6452.  
  6453. (Table P0763)
  6454. Values for Chips&Technologies 64310 extension register index:
  6455.  00h    "XR00"    chip version (see #P0764)
  6456.  01h    "XR01"    configuration (see #P0766)
  6457.  02h    "XR02"    CPU interface control (see #P0767)
  6458.  03h    "XR03"    CPU interface control 2 (see #P0769)
  6459.  04h    "XR04"    memory control (see #P0770)
  6460.  05h    "XR05"    memory control 2 (see #P0772)
  6461.  06h    "XR06"    color palette control / DRAM interface (see #P0773)
  6462.  07h    "XR07"    DRxx I/O base ???
  6463.  08h    "XR08"    linear frame buffer base address low register (see #P0774)
  6464.  09h    "XR09"    linear frame buffer base address high register (see #P0775)
  6465.  0Ah    "XR0A"    XRAM mode register (see #P0776)
  6466.  0Bh    "XR0B"    CPU paging (see #P0777)
  6467.  0Ch    "XR0C"    start address top (see #P0779)
  6468.  0Dh    "XR0D"    auxiliary offset (see #P0780)
  6469.  0Eh    "XR0E"    text mode control (see #P0781)
  6470.  0Fh    "XR0F"    software flag register 0 (reserved for BIOS/driver use)
  6471.  10h    "XR10"    single/low map register (see #P0782)
  6472.  11h    "XR11"    high map register (see #P0783)
  6473.  12h-13h    reserved
  6474.  14h    "XR14"    emulation mode (see #P0784)
  6475.  15h    "XR15"    write protect (see #P0785)
  6476.  16h    "XR16"    vertical overflow register (see #P0786)
  6477.  17h    "XR17"    horizontal overflow register (see #P0787)
  6478.  18h    "XR18"    reserved
  6479.  19h    "XR19"    alternate horizontal sync start / half-line (see #P0788)
  6480.  1Ah-1Bh    reserved
  6481.  1Ch    "XR1C"    alternate horizontal blank start / horizontal panel size
  6482.  1Dh-27h    reserved
  6483.  28h    "XR28"    video interface (see #P0792)
  6484.  29h-2Ah    reserved
  6485.  2Bh    "XR2B"    software flag register 1 (used by device drivers)
  6486.  2Ch-2Fh    reserved
  6487.  30h    "XR30"    clock divide control register (see #P0793)
  6488.  31h    "XR31"    clock M-divisor register (see #P0794)
  6489.  32h    "XR32"    clock N-divisor register (see #P0795)
  6490.  33h    "XR33"    clock control register (see #P0796)
  6491.  34h-39h    reserved
  6492.  3Ah    "XR3A"    color key compare data 0 (see #P0797)
  6493.  3Bh    "XR3B"    color key compare data 1 (see #P0798)
  6494.  3Ch    "XR3C"    color key compare data 2 (see #P0800)
  6495.  3Dh    "XR3D"    color key compare mask 0 (see #P0802)
  6496.  3Eh    "XR3E"    color key compare mask 1 (see #P0803)
  6497.  3Fh    "XR3F"    color key compare mask 2 (see #P0804)
  6498.  40h    "XR40"    BitBlt config register (see #P0805)
  6499.  41h    "XR41"    reserved
  6500.  42h-43h    reserved
  6501.  44h    "XR44"    software flag register 2 (reserved for BIOS/driver use)
  6502.  45h    "XR45"    reserved
  6503.  46h-4Fh    reserved
  6504.  50h-51h    reserved
  6505.  52h    "XR52"    refresh control register (see #P0806)
  6506.  53h-5Fh    reserved
  6507.  60h    "XR60"    blink rate control
  6508.  61h-6Fh    reserved
  6509.  70h    "XR70"    setup/disable control (see #P0807)
  6510.  71h    "XR71"    GPIO control register (see #P0808)
  6511.  72h    "XR72"    GPIO data register (see #P0809)
  6512.  73h    "XR73"    misc control register (see #P0810)
  6513.  74h    "XR74"    configuration register 2 (see #P0811)
  6514.  75h    "XR75"    software flag register 3 (reserved for BIOS/driver use)
  6515.  76h-79h    reserved
  6516.  7Ah    "XR7A"    test index register (see #P0812)
  6517.  7Bh    "XR7B"    test control register (see #P0813)
  6518.  7Ch    "XR7C"    test data register (see #P0814)
  6519.  7Dh    "XR7D"    diagnostic register (reserved; should not be read or written)
  6520.  7Eh    "XR7E"    reserved
  6521.  7Fh    "XR7F"    diagnostic register (reserved; should not be read or written)
  6522. SeeAlso: #P0762
  6523.  
  6524. Bitfields for Chips&Technologies "XR00" chip version:
  6525. Bit(s)    Description    (Table P0764)
  6526.  7-4    chip type
  6527.     0000 = 82C451
  6528.     0001 = 82C452
  6529.     0010 = 82C455
  6530.     0011 = 82C453
  6531.     0100 = 82C450
  6532.     0101 = 82C456
  6533.     0110 = 82C457
  6534.     0111 = 65520
  6535.     1000 = 65530 / 65525
  6536.     1001 = 65510 Flat-Panel Controller
  6537.     1010 = 64200 Wingine
  6538.     1011 = 64300/301 Wingine DGX (if bit 3 clear)
  6539.     1011 = 64310 Wingine DGX-PCI (if bit 3 set)
  6540.  3-0    chip revision (0000 = first silicon)
  6541. Note:    this register is read-only
  6542. SeeAlso: #P0762,#P0765
  6543.  
  6544. Bitfields for Chips&Technologies 64200 "XR01" configuration:
  6545. Bit(s)    Description    (Table P0765)
  6546.  7-4    configuration bits 7-4 (latched from pins on falling edge of RESET)
  6547.  3    memory configuration
  6548.     0 video memory pins always drive
  6549.     1 video memory pins only driven when XR03 bit 0 is clear (VGA mode)
  6550.  2    source of pixel clock
  6551.     0 oscillator (CLK0-CLK3 are pixel-clock inputs, which are selected by
  6552.       MSR bits 3-2)
  6553.     1 clock chip (CLK0 is pixel clock input, CLK1-CLK3 are CSELx outputs)
  6554.  1-0    bus type
  6555.     00 PCI
  6556.     01 Microchannel
  6557.     10 local bus
  6558.     11 ISA
  6559. Note:    this register is read-only
  6560. SeeAlso: #P0762,#P0764,#P0767,#P0766
  6561.  
  6562. Bitfields for Chips&Technologies 64300/64310 "XR01" configuration:
  6563. Bit(s)    Description    (Table P0766)
  6564.  7-6    (64310) reserved (0)
  6565.  7    (64300) VL-Bus CPU speed???
  6566.  6    (64300) VL-Bus zero wait state???
  6567.  5    (64310) OSC source
  6568.     0 = external
  6569.     1 = internal
  6570.  4    (64310) clock source
  6571.     0 = external (82C404C)
  6572.     1 = internal
  6573.  3    (64310) chip (bus interface and RAMDAC) enable
  6574.  2    (64310) 64310 isolate
  6575.     0 = 64310 cannot be disabled
  6576.     1 = 64310 can be disabled using port 106h in setup mode
  6577.     (64310 may also be disabled using PCI configuration registers)
  6578.  1-0    (64310) bus type
  6579.     00 reserved
  6580.     01 32-bit PCI
  6581.     10 reserved
  6582.     11 32-bit local bus
  6583. SeeAlso: #P0763,#P0765
  6584.  
  6585. Bitfields for Chips&Technologies "XR02" CPU interface register:
  6586. Bit(s)    Description    (Table P0767)
  6587.  7    status of attribute flip-flop (read-only) (0 = index, 1 = data)
  6588.  6    (64200) palette address decoding
  6589.     0 access only at PORT 03C6h-03C9h
  6590.     1 also access at PORT 83C6h-83C9h (for RAMDACs with 8 registers)
  6591.     (64310) reserved (0)
  6592.  5    I/O address decoding
  6593.     0 decode all 16 bits of address
  6594.     1 only decode low ten bits of address for 3B4h,3B5h,3B8h,3BAh,3BFh,
  6595.       3C0h-3C2h,3C4h,3C5h,3CEh,3CFh,3D4h,3D5h,3D8h-3DAh
  6596.  4-3    mapping of Attribute Controller
  6597.     00 VGA mapping - write index and data at 03C0h (8-bit only)
  6598.     01 16-bit mapping - write index at 03C0h, data at 03C1h
  6599.     10 (64200 only) EGA mapping - write index at 03C0h, data at 03C0h or
  6600.           03C1h (8-bit)
  6601.     11 reserved
  6602.  2-0    reserved (0)
  6603. SeeAlso: #P0762,#P0765,PORT 83C6h
  6604.  
  6605. Bitfields for Chips&Technologies "XR03" Master Control register:
  6606. Bit(s)    Description    (Table P0768)
  6607.  7    XREQ# direction (=0 input, =1 output)
  6608.  6    XREQ# divide (=0 DispEnable for all lines, =1 even-numbered lines)
  6609.  5    XREQ# mode (=0 DispEnable only, =1 split-buffer VRAM transfer timing)
  6610.     (see #P0799"XR3C",#P0801"XR3D")
  6611.  4    alternate VGA address
  6612.     =1 map at PORT 02C6h-02C9h instead of 03C6h-03C9h
  6613.  3-2    reserved
  6614.  1    alternate palette address
  6615.     =1 map at PORT 02Bxh or PORT 02Dxh instead of 03Bxh/03Dxh
  6616.  0    Wingine/VGA select
  6617.     =0 VGA
  6618.     =1 Wingine (memory pins are tri-stated)
  6619. Note:    a write-only copy of this register may be accessed at PORT 0022h
  6620.       (index E0h) and PORT 0023h; a read-write copy exists in systems with
  6621.       built-in Wingine support
  6622. SeeAlso: #P0762,#P0767,#P0770,#P0769
  6623.  
  6624. Bitfields for Chips&Technologies 64310 "XR03" CPU interface register 2:
  6625. Bit(s)    Description    (Table P0769)
  6626.  7-2    reserved (0)
  6627.  1    DRxx register access enable (I/O port defined in XR07 ???)
  6628.  0    palette write shadow
  6629. SeeAlso: #P0763,#P0768
  6630.  
  6631. Bitfields for Chips&Technologies "XR04" Memory Control register:
  6632. Bit(s)    Description    (Table P0770)
  6633.  7-6    (64200) reserved (0)
  6634.  7    (64310) FIFO depth
  6635.     0 = bus FIFO is 8 deep
  6636.     1 = bus FIFO is 4 deep
  6637.  6    (64310) PCI burst enable
  6638.  5    (64200) enable CPU memory write buffer
  6639.     (64310) CPU bus FIFO enable
  6640.  4-3    reserved (0)
  6641.  2    memory wraparound
  6642.     =1 enable bit 17 of CRTC address counter
  6643.  1-0    (64310) memory configuration
  6644.        data path  chips   config   total
  6645.     00    16-bit      4  256Kx4   1/2 MB
  6646.               1  256Kx16  1/2 MB
  6647.     01    32-bit      8  256Kx4    1 MB
  6648.               2  256Kx16    1 MB
  6649.     10    32-bit     16  256Kx4    2 MB
  6650.               4  256Kx16    2 MB
  6651.     11  reserved
  6652.  1    (64200) reserved (0)
  6653.  0    (64200) memory configuration
  6654.     =0 8-bit data, two DRAM chips of 256Kx4
  6655.     =1 16-bit data, four DRAM chips of 256Kx4
  6656. SeeAlso: #P0762,#P0768,#P0763
  6657.  
  6658. Bitfields for Chips&Technologies "XR05" Clock Control register:
  6659. Bit(s)    Description    (Table P0771)
  6660.  !!!
  6661. SeeAlso: #P0762
  6662.  
  6663. Bitfields for Chips&Technologies 64310 "XR05" Memory Control register 2:
  6664. Bit(s)    Description    (Table P0772)
  6665.  7    VAFC PCLK/2
  6666.     0 = DCLK=PCLK
  6667.     1 = DCLK=PCLK/2
  6668.  6    VAFC enable (XR71 bits 5, 3 and 2 must be 0)
  6669.  5    reserved (0)
  6670.  4    256Kx16 access format
  6671.     0 = 2 CAS / 1 WE
  6672.     1 = 2 WE / 1 CAS
  6673.  3-0    reserved
  6674. SeeAlso: #P0763
  6675.  
  6676. Bitfields for Chips&Technologies "XR06" color palette control / DRAM interface:
  6677. Bit(s)    Description    (Table P0773)
  6678.  7-5    (64310) reserved (0)
  6679.  4    (64310) video overlay on color key enable
  6680.  3-2    (64310) display mode color depth
  6681.     00 = 4BPP / 8BPP
  6682.     01 = 15BPP (5-5-5) Sierra compatible
  6683.     10 = 24BPP
  6684.     11 = 16BPP (5-6-5) XGA compatible
  6685.  1    (64310) internal DAC disable
  6686.  0    (64310) enable external pixel data
  6687.     0 = VID15-0 and KEY inputs for live video overlay
  6688.     1 = P7-0 and BLANK# outputs for external feature connector/external
  6689.       color keying (XR73 bit 5 must be set)
  6690. SeeAlso: #P0763
  6691.  
  6692. Bitfields for Chips&Technologies 64310 "XR08" linear frame buffer base low:
  6693. Bit(s)    Description    (Table P0774)
  6694.  7-6    linear frame buffer base address low (VL-Bus only)
  6695.     (bits 23-22 of linear frame buffer base address)
  6696.     (LFB is 4 MB boundary within 4 GB address space. Upper 2 MB is used
  6697.       for memory mapped I/O.)
  6698.  5-0    reserved (0)
  6699. SeeAlso: #P0763,#P0775
  6700.  
  6701. Bitfields for Chips&Technologies 64310 "XR09" linear frame buffer base high:
  6702. Bit(s)    Description    (Table P0775)
  6703.  7-0    linear frame buffer base address high (VL-Bus only)
  6704.     (bits 23-22 of linear frame buffer base address)
  6705.     (LFB is 4 MB boundary within 4 GB address space. Upper 2 MB is used
  6706.       for memory mapped I/O.)
  6707. SeeAlso: #P0763,#P0774
  6708.  
  6709. Bitfields for Chips&Technologies 64310 "XR0A" XRAM mode register:
  6710. Bit(s)    Description    (Table P0776)
  6711.  7    reserved (0)
  6712.  6    disable upper XRAM in 2MB modes
  6713.     0 = upper XRAM not enabled
  6714.     1 = upper XRAM enabled
  6715.     (used in systems with 2MB frame buffer but only single 256Kx4 XRAM)
  6716.  5    XRAM diagnostic 64 (0)
  6717.  4    synchronous XRAM enable
  6718.  3    asynchronous XRAM enable
  6719.  2-1    BitBlt update
  6720.     00 = no update during BitBlt
  6721.     11 = BitBlt update enabled
  6722.  0    XRAM test enable
  6723.     0 = XRAM normal mode
  6724.     1 = XRAM read/write
  6725. SeeAlso: #P0763
  6726.  
  6727. Bitfields for Chips&Technologies "XR0B" CPU Paging register:
  6728. Bit(s)    Description    (Table P0777)
  6729.  7-3    (64200) reserved (0)
  6730.  7    (64310) big-endian byte swap (32 bpp swap)
  6731.     0 = no swap
  6732.     1 = swap bytes 0-3 and 1-2
  6733.  6    (64310) big-endian byte swap (16 bpp swap)
  6734.     0 = no swap
  6735.     1 = swap bytes 0-1 and 2-3
  6736.  4    (64310) linear addressing enable
  6737.  3    (64310) reserved (0)
  6738.  2    divide CPU addresses by 4 (chain-4 mode)
  6739.  1    use two maps for CPU to access extended video memory (see #P0782,#P0783)
  6740.  0    memory-mapping mode
  6741.     =0 VGA-compatible
  6742.     =1 extended mapping for >= 512K video memory
  6743. SeeAlso: #P0762,#P0778,#P0763
  6744.  
  6745. Bitfields for Chips&Technologies 64200 "XR0C" Start Address Top register:
  6746. Bit(s)    Description    (Table P0778)
  6747.  7-1    reserved (0)
  6748.  0    high-order bit of display start address when 512K display memory used
  6749. SeeAlso: #P0762,#P0777,#P0779
  6750.  
  6751. Bitfields for Chips&Technologies 64310 "XR0C" Start Address Top register:
  6752. Bit(s)    Description    (Table P0779)
  6753.  7    reserved
  6754.  6    high map bit 8
  6755.  4    low map bit 8
  6756.  3-0    high-order bits of display start address
  6757. SeeAlso: #P0763,#P0778
  6758.  
  6759. Bitfields for Chips&Technologies "XR0D" Auxiliary Offset register:
  6760. Bit(s)    Description    (Table P0780)
  6761.  7-3    reserved (0)
  6762.  2    (64200) reserved (0)
  6763.     (64310) msb of row offset register (CRT controller register 13h)
  6764.  1-0    (64310) reserved (0)
  6765.  1    (64200) LSB of memory offset (CR13) in Chain and Chain-4 modes
  6766.  0    (64200) LSB of alternate memory offset (XR1E) in Chain/Chain-4 modes
  6767. SeeAlso: #P0762
  6768.  
  6769. Bitfields for Chips&Technologies "XR0E" Text Mode Control register:
  6770. Bit(s)    Description    (Table P0781)
  6771.  7-4    reserved (0)
  6772.  3    cursor style (0 = replace, 1 = XOR)
  6773.  2    disable cursor blink
  6774.  1    reserved (0)
  6775.  0    (64200) reserved (0)
  6776.     (64310) extended text mode font scrambling in plane 2 enable
  6777. SeeAlso: #P0762,#P0763
  6778.  
  6779. Bitfields for Chips&Technologies "XR10" Single/Low Map register:
  6780. Bit(s)    Description    (Table P0782)
  6781.  7-0    (64310) single/low map base address bits 17-10
  6782.     (single map mode base address if XR0B bit 1 = 0, dual map mode lower
  6783.       map base address if XR0B bit 1 = 1)
  6784. !!!chips\64200.pdf p.80
  6785. SeeAlso: #P0762,#P0783,#P0763
  6786.  
  6787. Bitfields for Chips&Technologies "XR11" High Map register:
  6788. Bit(s)    Description    (Table P0783)
  6789.  7-0    (64310) dual map mode high map base address bits 17-10
  6790.       (if XR0B bit 1 = 1)
  6791. SeeAlso: #P0762,#P0782
  6792.  
  6793. Bitfields for Chips&Technologies "XR14" Emulation Mode register:
  6794. Bit(s)    Description    (Table P0784)
  6795.  7    enable interrupt output function (=0 tri-state IRQ# line)
  6796.  6    (64200) enable VSync status bit at PORT 03BAh/03DAh
  6797.     (64310) reserved (0)
  6798.  5    vertical retrace status
  6799.     =0 PORT 03BAh/03DAh bit 3 is vertical retrace (CGA/EGA/VGA)
  6800.     =1 PORT 03BAh/03DAh bit 3 is video active (MDA/Herc)
  6801.  4-0    (64310) reserved (0)
  6802.  4    (64200) display enable status
  6803.     =0 PORT 03BAh/03DAh bit 0 is display enable (CGA/EGA/VGA)
  6804.     =1 PORT 03BAh/03DAh bit 0 is HSync (MDA/Herc)
  6805.  3-2    (64200) (read-only) Hercules configuration register readback
  6806.       (see PORT 03BFh)
  6807.  1-0    (64200) emulation mode
  6808.     00 VGA
  6809.     01 CGA
  6810.     10 MDA/Hercules
  6811.     11 EGA
  6812. SeeAlso: #P0762,#P0763
  6813.  
  6814. Bitfields for Chips&Technologies "XR15" Write Protect register:
  6815. Bit(s)    Description    (Table P0785)
  6816.  7    write protect AR11 (both bits 7 and 0 must be clear to write AR11)
  6817.  6
  6818.  5
  6819.  4
  6820.  3
  6821.  2
  6822.  1
  6823.  0    !!!chips\64200.pdf p.82
  6824. SeeAlso: #P0762
  6825.  
  6826. Bitfields for Chips&Technologies 64310 "XR16" vertical overflow register:
  6827. Bit(s)    Description    (Table P0786)
  6828.  7    resrved (0)
  6829.  6    line compare bit 10
  6830.  5    resrved (0)
  6831.  4    vertical blank start bit 10
  6832.  3    resrved (0)
  6833.  2    vertical sync start bit 10
  6834.  1    vertical display enable end bit 10
  6835.  0    vertical total bit 10
  6836. SeeAlso: #P0763
  6837.  
  6838. Bitfields for Chips&Technologies 64310 "XR17" horizontal overflow register:
  6839. Bit(s)    Description    (Table P0787)
  6840.  7    half line compare bit 8 (bits 7-0 in XR19)
  6841.  6    overflow end bits (XR17 bits 5 and 3) enable
  6842.  5    horizontal blank end bit 6
  6843.  4    horizontal blank start bit 8
  6844.  3    horizontal sync end bit 5
  6845.  2    horizontal sync start bit 8
  6846.  1    horizontal display enable end bit 8
  6847.  0    horizontal total bit 8
  6848. SeeAlso: #P0763
  6849.  
  6850. Bitfields for Chips&Technologies "XR19" alt. horizontal sync start/half-line:
  6851. Bit(s)    Description    (Table P0788)
  6852.  7-0    (64310) CRT half-line value
  6853. SeeAlso: #P0763
  6854.  
  6855. Bitfields for Chips&Technologies "XR1A" Alternate Horizontal Sync End register:
  6856. Bit(s)    Description    (Table P0789)
  6857.  7
  6858.  6-5
  6859.  4-0
  6860. SeeAlso: #P0762,#P0790
  6861.  
  6862. Bitfields for Chips&Technologies "XR1D" Alternate Horizontal Blank End reg:
  6863. Bit(s)    Description    (Table P0790)
  6864.  7
  6865.  6-5
  6866.  4-0
  6867. SeeAlso: #P0762,#P0789
  6868.  
  6869. Bitfields for Chips&Technologies "XR1F" Virtual EGA Switch register:
  6870. Bit(s)    Description    (Table P0791)
  6871.  7
  6872.  6-4    reserved (0)
  6873.  3-0    virtual EGA switches
  6874. SeeAlso: #P0762
  6875.  
  6876. Bitfields for Chips&Technologies "XR28" Video Interface register:
  6877. Bit(s)    Description    (Table P0792)
  6878.  7    reserved
  6879.  6    (64310) wide video pixel panning (if bit 4 = 1 and port 3C0h
  6880.       register 10h bit 6 = 1)
  6881.     0 = pixel panning controlled by port 3C0h register 13h bits 2-1
  6882.     1 = pixel panning controlled by port 3C0h register 13h bits 2-0
  6883.  5    interlaced video
  6884.  4    (64310) wide video path (doubles values in all horizontal CRTC
  6885.       registers)
  6886.     0 = 4-bit video data path
  6887.     1 = 8-bit video data path (horizontal pixel panning controlled by
  6888.       bit 6; port 3CEh register 5h bit 5 must be 0)
  6889.  3    reserved (0)
  6890.  2    shut off video
  6891.  1    (64310) BLANK#/display enable select
  6892.     0 = BLANK# pin outputs BLANK#
  6893.     1 = BLANK# pin outputs display enable
  6894.  0    (64310) BLANK#/display enable polarity
  6895.     0 = negative polarity
  6896.     1 = positive polarity
  6897. SeeAlso: #P0762,#P0763
  6898.  
  6899. Bitfields for Chips&Technologies 64310 "XR30" clock divide control register:
  6900. Bit(s)    Description    (Table P0793)
  6901.  7-4    reserved (0)
  6902.  3-1    post divisor select
  6903.     000 = divide by 1
  6904.     001 = divide by 2
  6905.     010 = divide by 4
  6906.     011 = divide by 8
  6907.     100 = divide by 16
  6908.     101 = divide by 32
  6909.     110-111 = reserved
  6910.  0    reference divisor select
  6911.     0 = divide by 4
  6912.     1 = divide by 1
  6913. Note:    Registers XR30-32 are used to program either memory clock or video
  6914.       clock VCO, selected by XR33 bit 5. Data must be written in sequence
  6915.       to all three registers, after which they are transferred to VCO
  6916.       simultaneously.
  6917. SeeAlso: #P0763
  6918.  
  6919. Bitfields for Chips&Technologies 64310 "XR31" clock M-divisor register:
  6920. Bit(s)    Description    (Table P0794)
  6921.  7    reserved (0)
  6922.  6-0    VCO M-divisor (program value - 2)
  6923. Note:    Registers XR30-32 are used to program either memory clock or video
  6924.       clock VCO, selected by XR33 bit 5. Data must be written in sequence
  6925.       to all three registers, after which they are transferred to VCO
  6926.       simultaneously.
  6927. SeeAlso: #P0763
  6928.  
  6929. Bitfields for Chips&Technologies 64310 "XR32" clock N-divisor register:
  6930. Bit(s)    Description    (Table P0795)
  6931.  7    reserved (0)
  6932.  6-0    VCO N-divisor (program value - 2)
  6933. Note:    Registers XR30-32 are used to program either memory clock or video
  6934.       clock VCO, selected by XR33 bit 5. Data must be written in sequence
  6935.       to all three registers, after which they are transferred to VCO
  6936.       simultaneously.
  6937. SeeAlso: #P0763
  6938.  
  6939. Bitfields for Chips&Technologies 64310 "XR33" clock control register:
  6940. Bit(s)    Description    (Table P0796)
  6941.  7-6    reserved (0)
  6942.  5    clock register program pointer
  6943.     0 = VCLK VCO
  6944.     1 = MCLK VCO
  6945.  4    PCLK equals MCLK instead of VCLK
  6946.  3    reserved (0)
  6947.  2    OSC enable (if XR01 bit 5 = 1)
  6948.  1    MCLK VCO enable (if XR01 bit 4 = 1)
  6949.  0    VCLK VCO enable (if XR01 bit 4 = 1)
  6950. SeeAlso: #P0763
  6951.  
  6952. Bitfields for Chips&Technologies 64310 "XR3A" color key compare data 0:
  6953. Bit(s)    Description    (Table P0797)
  6954.  7-0    color compare data 0
  6955.     (Compared to lowest 8 bits of 64310 memory data, masked with XR3D. If
  6956.       match occurs and XR06 bit 4 = 1, external video is sent to screen.
  6957.       Color comparison occurs before RAMDAC. Palette LUT index is used in
  6958.       4BPP and 8BPP modes.)
  6959. SeeAlso: #P0763
  6960.  
  6961. Bitfields for Chips&Technologies 64310 "XR3B" color key compare data 1:
  6962. Bit(s)    Description    (Table P0798)
  6963.  7-0    color compare data 1
  6964.     (Compared to bits 15-8 of 64310 memory data, masked with XR3E. If
  6965.       match occurs and XR06 bit 4 = 1, external video is sent to screen.
  6966.       This register should be masked in 4BPP and 8BPP modes by setting
  6967.       XR3E to FFh.)
  6968. SeeAlso: #P0763
  6969.  
  6970. Bitfields for Chips&Technologies 64200 "XR3C" Serial/Row Count register:
  6971. Bit(s)    Description    (Table P0799)
  6972.  7-6    reserved (0)
  6973.  5-3    row count (number of transfer cycles)
  6974.     000 = 64
  6975.     001 = 128
  6976.     010 = 256
  6977.     011 = 512
  6978.     1x0 = 1024
  6979.     1x1 = 2048
  6980.  2-0    serial count (same as for bits 5-3, but in units of serial clocks)
  6981. SeeAlso: #P0762,#P0801,#P0768
  6982.  
  6983. Bitfields for Chips&Technologies 64310 "XR3C" color key compare data 2:
  6984. Bit(s)    Description    (Table P0800)
  6985.  7-0    color compare data 2
  6986.     (Compared to bits 23-16 of 64310 memory data, masked with XR3F. If
  6987.       match occurs and XR06 bit 4 = 1, external video is sent to screen.
  6988.       This register should only be used in 24BPP modes, and masked in
  6989.       other modes by setting XR3F to FFh.)
  6990. SeeAlso: #P0763,#P0802
  6991.  
  6992. Bitfields for Chips&Technologies 64200 "XR3D" Multiplexer Mode register:
  6993. Bit(s)    Description    (Table P0801)
  6994.  7-5    reserved
  6995.  4
  6996.  3
  6997.  2-0    multiplexer mode
  6998. SeeAlso: #P0762,#P0799,#P0768
  6999.  
  7000. Bitfields for Chips&Technologies 64310 "XR3D" color key compare mask 0:
  7001. Bit(s)    Description    (Table P0802)
  7002.  7-0    color compare mask 0 (masks XR3A)
  7003.     0 = bit compared
  7004.     1 = bit masked from comparison
  7005. SeeAlso: #P0763,#P0800,#P0803
  7006.  
  7007. Bitfields for Chips&Technologies 64310 "XR3E" color key compare mask 1:
  7008. Bit(s)    Description    (Table P0803)
  7009.  7-0    color compare mask 1 (masks XR3B)
  7010.     0 = bit compared
  7011.     1 = bit masked from comparison
  7012. SeeAlso: #P0763,#P0802,#P0804
  7013.  
  7014. Bitfields for Chips&Technologies 64310 "XR3F" color key compare mask 2:
  7015. Bit(s)    Description    (Table P0804)
  7016.  7-0    color compare mask 2 (masks XR3C)
  7017.     0 = bit compared
  7018.     1 = bit masked from comparison
  7019. SeeAlso: #P0763,#P0802,#P0803
  7020.  
  7021. Bitfields for Chips&Technologies 64310 "XR40" BitBlt config register:
  7022. Bit(s)    Description    (Table P0805)
  7023.  7-2    reserved (0)
  7024.  1-0    BitBlt draw mode
  7025.     00 = reserved
  7026.     01 = 8bpp
  7027.     10 = 16bpp
  7028.     11 = reserved
  7029.     (24bpp handled in 8bpp mode; no nibble mode for 4bpp)
  7030. SeeAlso: #P0763
  7031.  
  7032. Bitfields for Chips&Technologies 64310 "XR52" refresh control register:
  7033. Bit(s)    Description    (Table P0806)
  7034.  7-3    reserved (0)
  7035.  2-0    VGA refresh cycles per scan line
  7036.     000 = default
  7037.     001-101 = 1-5 refresh cycles
  7038.     110-111 = illegal
  7039. SeeAlso: #P0763
  7040.  
  7041. Bitfields for Chips&Technologies "XR70" Setup/Disable Control register:
  7042. Bit(s)    Description    (Table P0807)
  7043.  7
  7044.  6-0    reserved (0)
  7045. SeeAlso: #P0762
  7046.  
  7047. Bitfields for Chips&Technologies 64310 "XR71" GPIO control register:
  7048. Bit(s)    Description    (Table P0808)
  7049.  7-5    GPOE
  7050.     0 = respective GPIO pin is input
  7051.     1 = respective GPIO pin is output
  7052.     (if standard feature connector is enabled (XR73 bit 5 = 1), GPIO pin 5
  7053.       becomes an alternate fixed function input (ECLK#) and bit 5 must be
  7054.       set to 0)
  7055.     (if external clock is selected (XR01 bit 4 = 0), bits 7-6 have no
  7056.       effect and GPIO pins 7-6 become CLKSEL1-0 and output contents of
  7057.       port 3CCh bits 3-2)
  7058.  4    reserved (0)
  7059.  3-2    GPOE
  7060.     0 = respective GPIO pin is input
  7061.     1 = respective GPIO pin is output
  7062.     (if standard feature connector is enabled (XR73 bit 5 = 1), GPIO pins
  7063.       3 and 2 become alternate fixed function inputs (EVIDEO#, ESYNC#) and
  7064.       bits 3-2 must be set to 0)
  7065.  1-0    reserved (0)
  7066. SeeAlso: #P0763
  7067.  
  7068. Bitfields for Chips&Technologies 64310 "XR72" GPIO data register:
  7069. Bit(s)    Description    (Table P0809)
  7070.  7-5    GPIO (input from/output to respective GPIO pin)
  7071.     (if standard feature connector is enabled (XR73 bit 5 = 1), GPIO pin 5
  7072.       becomes an alternate fixed function input (ECLK#))
  7073.     (if external clock is selected (XR01 bit 4 = 0), GPIO pins 7-6 become
  7074.       CLKSEL1-0 and output contents of port 3CCh bits 3-2)
  7075.  4    reserved (0)
  7076.  3-2    GPIO (input from/output to respective GPIO pin)
  7077.     (if standard feature connector is enabled (XR73 bit 5 = 1), GPIO pins
  7078.       3 and 2 become alternate fixed function inputs (EVIDEO#, ESYNC#))
  7079.  1-0    reserved (0)
  7080. SeeAlso: #P0763
  7081.  
  7082. Bitfields for Chips&Technologies 64310 "XR73" misc control register:
  7083. Bit(s)    Description    (Table P0810)
  7084.  7    ROMCS# write access enable
  7085.  6    external color key enable
  7086.  5    standard feature connector enable (must be set before XR06 bit 0)
  7087.  4    reserved (0)
  7088.  3    VSYNC control
  7089.     0 = CRTC VSYNC is output on VSYNC pin 126
  7090.     1 = bit 2 is output on VSYNC pin 126
  7091.  2    VSYNC data (if bit 3 = 1, this bit will be output on VSYNC pin)
  7092.  1    HSYNC control
  7093.     0 = CRTC HSYNC is output on HSYNC pin 125
  7094.     1 = bit 0 is output on HSYNC pin 125
  7095.  0    HSYNC data (if bit 1 = 1, this bit will be output on HSYNC pin)
  7096. SeeAlso: #P0763
  7097.  
  7098. Bitfields for Chips&Technologies 64310 "XR74" configuration register 2:
  7099. Bit(s)    Description    (Table P0811)
  7100.  7-0    (64300) ???
  7101.     (64310) reserved (0)
  7102. SeeAlso: #P0763
  7103.  
  7104. Bitfields for Chips&Technologies 64310 "XR7A" test index register:
  7105. Bit(s)    Description    (Table P0812)
  7106.  7-0    test index (select XR7B function)
  7107.     00h = reserved
  7108.     01h = CRC signature analysis
  7109.     02h-FFh = reserved
  7110. SeeAlso: #P0763
  7111.  
  7112. Bitfields for Chips&Technologies 64310 "XR7B" test control register:
  7113. Bit(s)    Description    (Table P0813)
  7114. ---XR7A = 01h---
  7115.  7    CRC status (read-only)
  7116.     0 = CRC ARM=0 or CRC data is being generated (CRC data should not be
  7117.       read)
  7118.     1 = CRC ARM=1 and CRC data is ready
  7119.  6    CRC arm
  7120.     1 = arm CRC generation to start after the next VSYNC and stop after the
  7121.       VSYNC following that (should not be set to 0 until entire CRC value
  7122.       is read)
  7123.  5-4    CRC data select (select data to be read from XR7C)
  7124.     00 = CRC bit 7-0
  7125.     01 = CRC bits 15-8
  7126.     10 = 0 and CRC bits 22-16
  7127.     11 = 00h
  7128.  3-2    CRC qualification
  7129.     00 = take all data
  7130.     01 = take data when not blank (DE + overscan)
  7131.     10 = take data when DE is active
  7132.     11 = take data in PC Video window only
  7133.  1-0    video data select
  7134.     00 = red video data before DAC output
  7135.     01 = green video data before DAC output
  7136.     10 = blue video data before DAC output
  7137.     11 = control data (VSYNC, HSYNC, blank, internal display enable,
  7138.       0, 0, 0, 0)
  7139. SeeAlso: #P0763,#P0812
  7140.  
  7141. Bitfields for Chips&Technologies 64310 "XR7C" test data register:
  7142. Bit(s)    Description    (Table P0814)
  7143. ---XR7A = 01h---
  7144.  7-0    CRC data (read-only)
  7145. SeeAlso: #P0763,#P0812
  7146.  
  7147. Bitfields for Chips&Technologies "XR7E" CGA Color Select register:
  7148. Bit(s)    Description    (Table P0815)
  7149.  7-6    reserved
  7150.  5
  7151.  4
  7152.  3-0
  7153. Note:    this is a mirror of the register accessed via PORT 03D9h, which is
  7154.       always visible, while PORT 03D9h is only visible in CGA emulation
  7155. SeeAlso: #P0762,PORT 03D9h
  7156.  
  7157. Bitfields for Chips&Technologies "XR7F" Diagnostic register:
  7158. Bit(s)    Description    (Table P0816)
  7159.  7    special test function (should remain cleared)
  7160.  6    enable test function in bits 5-2
  7161.  5-2    test function
  7162.  1    tri-state output pins: !!!
  7163.  0    tri-state output pins: !!! chips\64200.pdf p.90
  7164. SeeAlso: #P0762
  7165. ----------P03D803DF--------------------------
  7166. PORT 03D8-03DF - COLOR VIDEO - CRT MODE AND STATUS REGISTERS
  7167.  
  7168. 03D8  RW  CGA mode control register  (except PCjr) (see #P0817)
  7169.     cannot be found on native color EGA, color VGA, but on most clones
  7170. 03D9  RW  CGA palette register (see #P0819)
  7171.     (MCGA) CGA border control register
  7172.     Cannot be found on native EGA, VGA (without translation ROM) but
  7173.       only most clones. Read access on Genoa SuperEGA is 'reset'???
  7174. 03DA  R-  CGA status register (see #P0818)
  7175.     color EGA/VGA: input status 1 register
  7176. 03DA  -W  color EGA/color VGA feature control register (see #P0820)
  7177.     (at PORT 03BAh w in mono mode, VGA: 3CAh r)
  7178. 03DA  -W  HZ309 (MDA/HGC/CGA clone) card from in Heath/Zenith HZ150 PC
  7179.     bit7-1=0: unknown, zero is default and known to function
  7180.            properly at least in CGA modes.
  7181.     bit 0 = 1 override 3x8h bit3 control register that switches
  7182.            CRT beam off if bit3 is cleared. So screens always
  7183.            stays on.
  7184.     bit 0 = 0 3x8h bit3 indicates if CRT beam is on or off.
  7185.            No more info available. Might conflict with EGA/VGA.
  7186. 03DB  rW  clear light pen latch    (not MCGA)
  7187.           (R/W only with Genoa SuperEGA)
  7188. 03DC  RW  (not MCGA) preset light pen latch
  7189. 03DC  -W  (CGA) set light pen latch
  7190. 03DD  -W  (MCGA)  Extended mode control register
  7191.       (Plantronics & Genoa SuperEGA: Plantronics ColorPlus control,
  7192.               compatible with MCGA???)
  7193.     (default is 00h, in mode 13h: 04h)
  7194.     bit7 =1: DAC active, cannot be read
  7195.          =0: DAC not active, read allowed
  7196.     bit6-3 : reserved
  7197.     bit2 =1: videomode 13h with 256 colors active
  7198.     bit1    : reserved
  7199.     bit0 =0: reserved
  7200. 03DE  --  (MCGA) reserved
  7201. 03DE  -W  (AT&T & color ET4000 in AT&T compatibility mode & C&T 82C426)
  7202.       AT&T mode control register (see #P0821)
  7203.     (register enabled in ET4000, if bit7=1 in CRTC 3D4h/34h.)
  7204. 03DF  --  (MCGA) reserved
  7205. 03DF  ?W  CRT/CPU page register     (PCjr only)
  7206.  
  7207. Bitfields for CGA/Hercules mode control register:
  7208. Bit(s)    Description    (Table P0817)
  7209.  7-0    =A0h color ET4000: second part of 'key', see Hercules compatibility
  7210.       register (see PORT 03BFh) for details. For resetting the key, e.g.
  7211.       write 01h to PORT 03BFh and 29h to PORT 03D8h.
  7212.  7    (Hercules) page select
  7213.     =0 B0000h
  7214.     =1 B8000h
  7215.  6    color ET4000 only, read-only: report status of bit 1 (enable 2nd page)
  7216.       of hercules compatibility register (see PORT 03BFh)
  7217.  5    =1  blink enabled instead of foreground high-int.
  7218.  4    =1  640*200 graphics mode (CGA)
  7219.  3    =1  video enabled (HZ309, see PORT 03DAh bit 0)
  7220.  2    =1  monochrome signal
  7221.         (MCGA) in mode 6 and 11h color comes from palette
  7222.           regs 00 (black) and 07 (white), and can be changed there.
  7223.  1    =0  text mode
  7224.     =1  320*200 graphics mode
  7225.  0    text columns (0 = 40*25 text mode, 1 = 80*25 text mode)
  7226. SeeAlso: #P0818
  7227.  
  7228. Bitfields for CGA status register:
  7229. Bit(s)    Description    (Table P0818)
  7230.  7-6    not used
  7231.  7    (C&T Wingine) vertical sync in progress (if enabled by XR14)
  7232.  5-4    color EGA, color ET4000, C&T: diagnose video display feedback, select
  7233.       from color plane enable
  7234.  3    in vertical retrace
  7235.     (C&T Wingine) video active (retrace/video selected by XR14)
  7236.  2    (CGA,color EGA) light pen switch is off
  7237.     (MCGA,color ET4000) reserved (0)
  7238.     (VGA) reserved (1)
  7239.  1    (CGA,color EGA) positive edge from light pen has set trigger
  7240.     (VGA,MCGA,color ET4000) reserved (0)
  7241.  0    horizontal retrace in progress
  7242.     =0  do not use memory
  7243.     =1  memory access without interfering with display
  7244.         (VGA,Genoa SuperEGA) horizontal or vertical retrace
  7245.     (C&T Wingine) display enabled (retrace/DE selected by XR14)
  7246. SeeAlso: #P0817,#P0819,#P0762
  7247.  
  7248. Bitfields for CGA palette register:
  7249. Bit(s)    Description    (Table P0819)
  7250.  7-6    not used
  7251.  5    =0 active 320x200x4 color set: red, green brown
  7252.     =1 active 320x200x4 color set: cyan, magenta, white
  7253.  4    intense colors in graphics, background colors text
  7254.  3    intense border in 40*25, intense background in 320*200, intense
  7255.       foreground in 640*200
  7256.  2    red border in 40*25, red background in 320*200,    red foreground in
  7257.       640*200
  7258.  1    green border in 40*25, green background in 320*200, green foreground
  7259.       in 640*200
  7260.  0    blue border in 40*25, blue background in 320*200, blue foreground in
  7261.        640*200
  7262. SeeAlso: #P0817,#P0818
  7263.  
  7264. Bitfields for color EGA/VGA feature control register:
  7265. Bit(s)    Description    (Table P0820)
  7266.  7    ET4000 only: enable NMI generation ('key' protected)
  7267.  6-4    not used
  7268.  3    (VGA) 0 = normal vsync, 1 = vsync OR display enable
  7269.  2    reserved (0)
  7270.     (C&T Wingine) disable 16-bit operations
  7271.  1    (EGA,ET4000,Wingine) FEAT1 control bit1 (pin17 feature connector)
  7272.     (VGA) reserved (0)
  7273.  0    (EGA,ET4000,Wingine) FEAT0 control bit0 (pin19 feature connector)
  7274.     (VGA) reserved (0)
  7275. SeeAlso: #P0818
  7276.  
  7277. Bitfields for AT&T mode control register:
  7278. Bit(s)    Description    (Table P0821)
  7279.  7    reserved
  7280.  6    underline color attribute enable
  7281.     ET4000: enabled, if bit6=1 in CRTC 3D4h/34h.
  7282.  5    reserved
  7283.  4    reserved
  7284.  3    alternate page select (=1: 2nd 16KB page, with bit0=0)
  7285.  2    alternate font select (0=default font block)
  7286.  1    reserved
  7287.  0    double scan line mode (0=IBM 200, 1=AT&T 400 line graphics)
  7288.     (ET4000) enabled, if bit7-6=11b in CRTC 3D4h/34h.
  7289. ----------P03E003E1--------------------------
  7290. PORT 03E0-03E1 - OPTi 82C824 - CardBus Bridge registers
  7291. Range:    PORT 03E0h or PORT 03E2h
  7292. SeeAlso: PORT 03E2h"CardBus"
  7293.  
  7294. 03E0  ?W  index for data register
  7295. 03E1  RW  CardBus registers
  7296. --------X-P03E003E1--------------------------
  7297. PORT 03E0-03E1 - Cirrus Logic CL-PD6710/6722/6729 - PC-CARD HOST ADAPTER
  7298. Notes:    the CL-PD6729 has compatible registers, but the port address
  7299.       is set via the PCI configuration space (two consecutive ports
  7300.       starting at Base Address 0)
  7301.     the CL-PD6832 supports a superset of this register set
  7302. SeeAlso: PORT 03E0h"CardBus"
  7303.  
  7304. 03E0  ?W  index for data register (see #P0822)
  7305. 03E1  RW  register data
  7306.  
  7307. Bitfields for Cirrus Logic CL-PD6710/6722 index register:
  7308. Bit(s)    Description    (Table P0822)
  7309.  7    device number (when dual CL-PD67xx's are used)
  7310.     (CL-PD6729) reserved
  7311.  6    socket number (CL-PD6722 dual-socket adapter only)
  7312.  5-0    register index (see #P0823)
  7313.  
  7314. (Table P0823)
  7315. Values for Cirrus Logic CL-PD6710/6722 register number:
  7316.  00h    chip revision (affects both sockets) (see #P0824)
  7317.  01h    interface status (see #P0825)
  7318.  02h    power control (see #P0826)
  7319.  03h    interrupt and general control (see #P0827)
  7320.  04h    card status change (see #P0828)
  7321.  05h    management interrupt configuration (see #P0829)
  7322.  06h    mapping enable (see #P0830)
  7323.  07h    I/O window control (see #P0831)
  7324.  08h    system I/O map 0 start address low
  7325.  09h    system I/O map 0 start address high
  7326.  0Ah    system I/O map 0 end address low
  7327.  0Bh    system I/O map 0 end address high
  7328.  0Ch    system I/O map 1 start address low
  7329.  0Dh    system I/O map 1 start address high
  7330.  0Eh    system I/O map 1 end address low
  7331.  0Fh    system I/O map 1 end address high
  7332.  10h    system memory map 0 start address low (address bits 19-12)
  7333.  11h    system memory map 0 start address high (see #P0832)
  7334.  12h    system memory map 0 end address low (address bits 19-12)
  7335.  13h    system memory map 0 end address high (see #P0833)
  7336.  14h    card memory map 0 offset address low (address bits 19-12)
  7337.  15h    card memory map 0 offset address high (see #P0834)
  7338.  16h    misc control 1 (see #P0835)
  7339.  17h    FIFO control (see #P0836)
  7340.  18h    system memory map 1 start address low (address bits 19-12)
  7341.  19h    system memory map 1 start address high (see #P0832)
  7342.  1Ah    system memory map 1 end address low (address bits 19-12)
  7343.  1Bh    system memory map 1 end address high (see #P0833)
  7344.  1Ch    card memory map 1 offset address low (address bits 19-12)
  7345.  1Dh    card memory map 1 offset address high (see #P0834)
  7346.  1Eh    misc control 2 (affects both sockets) (see #P0837)
  7347.  1Fh    chip information (affects both sockets) (see #P0838)
  7348.  20h    system memory map 2 start address low (address bits 19-12)
  7349.  21h    system memory map 2 start address high (see #P0832)
  7350.  22h    system memory map 2 end address low (address bits 19-12)
  7351.  23h    system memory map 2 end address high (see #P0833)
  7352.  24h    card memory map 2 offset address low (address bits 19-12)
  7353.  25h    card memory map 2 offset address high (see #P0834)
  7354.  26h    ATA control (see #P0839)
  7355.  27h    scratchpad
  7356.  28h    system memory map 3 start address low (address bits 19-12)
  7357.  29h    system memory map 3 start address high (see #P0832)
  7358.  2Ah    system memory map 3 end address low (address bits 19-12)
  7359.  2Bh    system memory map 3 end address high (see #P0833)
  7360.  2Ch    card memory map 3 offset address low (address bits 19-12)
  7361.  2Dh    card memory map 3 offset address high (see #P0834)
  7362.  2Eh    (CL-PD6722/6729) extended index for extended data register (see #P0842)
  7363.  2Fh    extended data
  7364.  30h    system memory map 4 start address low (address bits 19-12)
  7365.  31h    system memory map 4 start address high (see #P0832)
  7366.  32h    system memory map 4 end address low (address bits 19-12)
  7367.  33h    system memory map 4 end address high (see #P0833)
  7368.  34h    card memory map 4 offset address low (address bits 19-12)
  7369.  35h    card memory map 4 offset address high (see #P0834)
  7370.  36h    card I/O map 0 offset address low (see #P0840)
  7371.  37h    card I/O map 0 offset address high (address bits 15-8)
  7372.  38h    card I/O map 1 offset address low (see #P0840)
  7373.  39h    card I/O map 1 offset address high (address bits 15-8)
  7374.  3Ah    setup timing 0 (see #P0841)
  7375.  3Bh    command timing 0 (see #P0841)
  7376.  3Ch    recovery timing 0 (see #P0841)
  7377.  3Dh    setup timing 1 (see #P0841)
  7378.  3Eh    command timing 1 (see #P0841)
  7379.  3Fh    recovery timing 1 (see #P0841)
  7380. SeeAlso: #P0822
  7381.  
  7382. Bitfields for Cirrus Logic CL-PD6710/6722/6729 chip revision:
  7383. Bit(s)    Description    (Table P0824)
  7384.  7-6    interface ID (read-only)
  7385.     00 = I/O only
  7386.     01 = memory only
  7387.     10 = I/O and memory
  7388.     11 = reserved
  7389.  5-4    reserved (read-only)
  7390.  3-0    revision (read-only)
  7391. SeeAlso: #P0823
  7392.  
  7393. Bitfields for Cirrus Logic CL-PD6710/6722/6729 interface status:
  7394. Bit(s)    Description    (Table P0825)
  7395.  7    -VPP_VALID pin status
  7396.     0 = -VPP_VALID high
  7397.     1 = -VPP_VALID low (asserted)
  7398.     (CL-PD6729) reserved (1)
  7399.  6    card power on
  7400.  5    (memory card) ready
  7401.  4    (memory card) write protect
  7402.  3-2    card detect status
  7403.     00 = no card or card not fully inserted
  7404.     01 = card not fully inserted
  7405.     10 = card not fully inserted
  7406.     11 = card fully inserted
  7407.  1-0    (memory card) battery voltage
  7408.     00 = card data lost
  7409.     01 = battery low warning
  7410.     10 = card data lost
  7411.     11 = battery/data ok
  7412.     (I/O card) status change (ignore bit 1)
  7413. Note:    this register is read-only
  7414. SeeAlso: #P0823
  7415.  
  7416. Bitfields for Cirrus Logic CL-PD6710/6722/6729 power control:
  7417. Bit(s)    Description    (Table P0826)
  7418.  7    card enable (if card present (register 01h bits 3-2 = 11) and power
  7419.       supplied (bit 4 = 1))
  7420.  6    reserved (82365SL compatibility)
  7421.  5    auto-power enable
  7422.  4    Vcc power on (if bit 5 = 0, or bit 5 = 1 and register 01h
  7423.       bits 3-2 = 11) (voltage selected by register 16h bit 1)
  7424.  3-2    reserved (82365SL compatibility)
  7425.  1-0    Vpp1 power
  7426.     00 = zero V
  7427.     01 = selected card Vcc
  7428.     10 = +12V
  7429.     11 = zero V
  7430. SeeAlso: #P0823
  7431.  
  7432. Bitfields for Cirrus Logic CL-PD6710/6722/6729 interrupt and general control:
  7433. Bit(s)    Description    (Table P0827)
  7434.  7    (I/O card) ring indicate enable
  7435.  6    card reset signal
  7436.     0 = active
  7437.     1 = inactive
  7438.  5    card interface mode
  7439.     0 = memory card
  7440.     1 = I/O card
  7441.  4    management interrupt
  7442.     0 = selected by register 05h bits 7-4
  7443.     1 = redirected to -INTR line
  7444.         (CL-PD6729) reserved
  7445.  3-0    card IRQ select
  7446.     0000 = IRQ disabled
  7447.     0001-0010 = reserved
  7448.     0011-0101 = IRQ3-IRQ5 (INTA#-INTC# on CL-PD6729)
  7449.     0110 = reserved
  7450.     0111 = IRQ7 (INTD# on CL-PD6729)
  7451.     1000 = reserved
  7452.     1001 = IRQ9 (may be used as ISA bus DACK on CL-PD6722)
  7453.     1010 = IRQ10 (may be used as ISA bus DRQ on CL-PD6722)
  7454.     1011 = IRQ11
  7455.     1100 = IRQ12 (may be used for LED on CL-PD6710/6722)
  7456.     1101 = reserved
  7457.     1110 = IRQ14 (may be used as external clock input on CL-PD6729)
  7458.     1111 = IRQ15 (may be used as ring indicate output)
  7459. SeeAlso: #P0823
  7460.  
  7461. Bitfields for Cirrus Logic CL-PD6710/6722/6729 card status change:
  7462. Bit(s)    Description    (Table P0828)
  7463.  7-4    reserved (0)
  7464.  3    card detect change
  7465.  2    ready change (always 0 for I/O card)
  7466.  1    battery warning change (ignore on I/O card)
  7467.  0    (memory card) battery dead change
  7468.     (I/O card) status change
  7469. Note:    reading this read-only register resets all bits to 0
  7470. SeeAlso: #P0823
  7471.  
  7472. Bitfields for Cirrus Logic CL-PD6710/6722/6729 management interrupt config:
  7473. Bit(s)    Description    (Table P0829)
  7474.  7-4    management IRQ
  7475.     0000 = IRQ disabled
  7476.     0001-0010 = reserved
  7477.     0011-0101 = IRQ3-IRQ5 (INTA#-INTC# on CL-PD6729)
  7478.     0110 = reserved
  7479.     0111 = IRQ7 (INTD# on CL-PD6729)
  7480.     1000 = reserved
  7481.     1001 = IRQ9 (on CL-PD6722 may be used as ISA bus DACK)
  7482.     1010 = IRQ10 (on CL-PD6722 may be used as ISA bus DRQ)
  7483.     1011 = IRQ11
  7484.     1100 = IRQ12 (on CL-PD6710/6722 may be used for LED)
  7485.     1101 = reserved
  7486.     1110 = IRQ14 (on CL-PD6729 may be used as external clock input)
  7487.     1111 = IRQ15 (may be used as ring indicate output)
  7488.  3    management interrupt on card detect change enable
  7489.  2    management interrupt on ready change enable
  7490.  1    management interrupt on battery warning change enable (ignored on
  7491.       I/O card)
  7492.  0    (memory card) management interrupt on battery dead change enable
  7493.     (I/O card) management interrupt on status change enable
  7494. SeeAlso: #P0823
  7495.  
  7496. Bitfields for Cirrus Logic CL-PD6710/6722/6729 mapping enable:
  7497. Bit(s)    Description    (Table P0830)
  7498.  7    I/O map 1 enable
  7499.  6    I/O map 0 enable
  7500.  5    reserved (82365SL compatibility: MEMCS16 full decode)
  7501.  4    memory map 4 enable
  7502.  3    memory map 3 enable
  7503.  2    memory map 2 enable
  7504.  1    memory map 1 enable
  7505.  0    memory map 0 enable
  7506. SeeAlso: #P0823
  7507.  
  7508. Bitfields for Cirrus Logic CL-PD6710/6722/6729 I/O window control:
  7509. Bit(s)    Description    (Table P0831)
  7510.  7    timing register select 1
  7511.     0 = accesses made with timings specified in timer set 0
  7512.     1 = accesses made with timings specified in timer set 1
  7513.  6    reserved (82365SL compatibility)
  7514.  5    I/O window 1 auto-size enable (size determined by -IOIS16 signal) (set
  7515.       for proper ATA operation)
  7516.  4    I/O window 1 size (if bit 5 = 0)
  7517.     0 = 8-bit data path
  7518.     1 = 16-bit data path
  7519.  3    timing register select 0 (same values as bit 7)
  7520.  2    reserved (82365SL compatibility)
  7521.  1    I/O window 0 auto-size enable (size determined by -IOIS16 signal)
  7522.  0    I/O window 0 size (if bit 1 = 0) (same values as bit 4)
  7523. SeeAlso: #P0823
  7524.  
  7525. Bitfields for Cirrus Logic CL-PD6710/6722/6729 system memory map start high:
  7526. Bit(s)    Description    (Table P0832)
  7527.  7    window data size
  7528.     0 = 8-bit
  7529.     1 = 16-bit
  7530.  6    reserved (82365SL compatibility)
  7531.  5-4    scratchpad
  7532.  3-0    start address bits 23-20
  7533. SeeAlso: #P0823
  7534.  
  7535. Bitfields for Cirrus Logic CL-PD6710/6722/6729 system memory map end high:
  7536. Bit(s)    Description    (Table P0833)
  7537.  7-6    card timer
  7538.     00 = timer set 0
  7539.     01-11 = timer set 1
  7540.  5-4    scratchpad
  7541.  3-0    end address bits 23-20
  7542. SeeAlso: #P0823
  7543.  
  7544. Bitfields for Cirrus Logic CL-PD6710/6722/6729 card memory map offset high:
  7545. Bit(s)    Description    (Table P0834)
  7546.  7    window write protect enable
  7547.  6    -REG active for window accesses
  7548.  5-0    offset address bits 25-20
  7549. SeeAlso: #P0823
  7550.  
  7551. Bitfields for Cirrus Logic CL-PD6710/6722/6729 misc control 1:
  7552. Bit(s)    Description    (Table P0835)
  7553.  7    INPACK enable (no effect on CL-PD6729)
  7554.  6-5    scratchpad
  7555.  4    speaker enable
  7556.  3    system IRQ triggering
  7557.     0 = level
  7558.     1 = pulse
  7559.  2    management interrupt triggering (as for bit 3)
  7560.  1    Vcc voltage
  7561.     0 = 5V
  7562.     1 = 3.3V
  7563.  0    (CL-PD6710) voltage detect
  7564.     0 = 3.3V card detected
  7565.     0 = old or 5V card detected
  7566.     (CL-PD6722) reserved (A_GPSTB/B_GPSTB level read on some versions)
  7567.     (CL-PD6729) multimedia enable (tri-state socket address lines A25-4)
  7568.       (register 2Fh extended index 25h bit 7 must be 1)
  7569. SeeAlso: #P0823
  7570.  
  7571. Bitfields for Cirrus Logic CL-PD6710/6722/6729 FIFO control:
  7572. Bit(s)    Description    (Table P0836)
  7573.  7    (read) FIFO status
  7574.     0 = data in FIFO
  7575.     1 = FIFO empty
  7576.     (write) FIFO flush
  7577.     0 = no operation
  7578.     1 = flush FIFO
  7579.  6-0    scratchpad
  7580. SeeAlso: #P0823
  7581.  
  7582. Bitfields for Cirrus Logic CL-PD6710/6722/6729 misc control 2:
  7583. Bit(s)    Description    (Table P0837)
  7584.  7    IRQ15 connected to ring indicate pin
  7585.  6    (CL-PD6710/6729) reserved
  7586.     (CL-PD6722) DMA system enable
  7587.  5    floppy change bit compatibility enable (tri-state bit 7 of socket I/O
  7588.       at addresses 3F7h and 377h)
  7589.     (CL-PD6729) reserved
  7590.  4    drive LED enable (should be set to 0 in memory card interface mode)
  7591.     (CL-PD6729) reserved
  7592.  3    core voltage
  7593.     0 = 3.3V
  7594.     1 = 5V
  7595.  2    suspend mode enable
  7596.  1    low-power dynamic mode
  7597.     0 = clock always runs
  7598.     1 = stop clock when possible (normal operation)
  7599.  0    frequency synthesizer bypass
  7600.     0 = internal clock = CLK input * 7/4 (normal operation)
  7601.     1 = internal clock = CLK input
  7602.     (CL-PD6729) external clock enable
  7603.     0 = internal clock = PCI_CLK input / 2
  7604.     1 = internal clock = IRQ14/EXT_CLK / 2
  7605. SeeAlso: #P0823
  7606.  
  7607. Bitfields for Cirrus Logic CL-PD6710/6722/6729 chip information:
  7608. Bit(s)    Description    (Table P0838)
  7609.  7-6    Cirrus Logic host-adapter identification (read-only)
  7610.     00 = second read after I/O write to this register
  7611.     11 = first read after I/O write to this register
  7612.  5-0    (CL-PD6729) CL-PD6729 revision (read-only)
  7613.     21h = register 2Fh extended indexes 34h-3Bh indicate chip revision and
  7614.       features
  7615.  5    (CL-PD6710/6722) CL-PD67xx sockets (read-only)
  7616.     0 = single (CL-PD6710)
  7617.     1 = dual (CL-PD6722)
  7618.  4-1    (CL-PD6710/6722) CL-PD67xx revision (read-only)
  7619.  0    (CL-PD6710) reserved (0) (read-only)
  7620.     (CL-PD6722) reserved (1) (read-only)
  7621. SeeAlso: #P0823
  7622.  
  7623. Bitfields for Cirrus Logic CL-PD6710/6722/6729 ATA control:
  7624. Bit(s)    Description    (Table P0839)
  7625.  7    (ATA mode) A25 / CSEL pin value (vendor specific)
  7626.  6    (ATA mode) A24 / M/S pin value (vendor specific)
  7627.  5    (ATA mode) A23 / VU pin value (vendor specific)
  7628.  4    (ATA mode) A22 pin value (vendor specific)
  7629.  3    (ATA mode) A21 pin value (vendor specific)
  7630.  2    scratchpad
  7631.  1    speaker is LED input (if register 1Eh bit 4 = 1) (should be set to 0
  7632.       in memory card interface mode)
  7633.     (CL-PD6729) speaker is LED input (if register 2Fh extended index 03h
  7634.       bit 4 = 1) (should be set to 0 in memory card interface mode)
  7635.  0    ATA mode enable
  7636. SeeAlso: #P0823
  7637.  
  7638. Bitfields for Cirrus Logic CL-PD6710/6722/6729 card I/O map offset address low:
  7639. Bit(s)    Description    (Table P0840)
  7640.  7-1    offset address bits 7-1
  7641.  0    reserved (must be 0)
  7642. SeeAlso: #P0823
  7643.  
  7644. Bitfields for Cirrus Logic CL-PD6710/6722/6729 setup/command/recovery timing:
  7645. Bit(s)    Description    (Table P0841)
  7646.  7-6    prescaler
  7647.     00 = 1
  7648.     01 = 16
  7649.     10 = 256
  7650.     11 = (CL-PD6710/6722) 8192
  7651.          (CL-PD6729) 4096
  7652.  5-0    multiplier value
  7653. Notes:    internal clock cycles = (prescalar * multiplier) + 1
  7654.     changes take effect immediately and should only be changed when FIFO
  7655.       is empty (register 17h bit 7 = 1)
  7656. SeeAlso: #P0823
  7657.  
  7658. (Table P0842)
  7659. Values for Cirrus Logic CL-PD6722/6729 extended index:
  7660.  00h    scratchpad
  7661.  01h    (CL-PD6722) data mask 0 (see #P0843)
  7662.     (CL-PD6729) reserved
  7663.  02h    (CL-PD6722) data mask 1 (see #P0843)
  7664.     (CL-PD6729) reserved
  7665.  03h    extension control 1 (see #P0844)
  7666.  04h    (CL-PD6722) maximum DMA acknowledge delay (see #P0845)
  7667.     (CL-PD6729) reserved
  7668.  05h-09h (CL-PD6722) reserved
  7669.  05h    (CL-PD6729) system memory map 0 upper address (start/end address
  7670.       bits 31-24)
  7671.  06h    (CL-PD6729) system memory map 1 upper address (start/end address
  7672.       bits 31-24)
  7673.  07h    (CL-PD6729) system memory map 2 upper address (start/end address
  7674.       bits 31-24)
  7675.  08h    (CL-PD6729) system memory map 3 upper address (start/end address
  7676.       bits 31-24)
  7677.  09h    (CL-PD6729) system memory map 4 upper address (start/end address
  7678.       bits 31-24)
  7679.  0Ah    (CL-PD6722) external data (see #P0846)
  7680.     (CL-PD6729 socket B) external data (see #P0847)
  7681.  0Bh    (CL-PD6722) extension control 2 (see #P0848)
  7682.  25h    (CL-PD6729) misc. control 3 (see #P0849)
  7683. ---CL-PD6729 socket A---
  7684.  34h    mask revision byte (read-only)
  7685.  35h    product ID byte (read-only) (see #P0850)
  7686.  36h    device capability byte A (read-only) (see #P0851)
  7687.  37h    device capability byte B (read-only) (see #P0852)
  7688.  38h    device implementation byte A (see #P0853)
  7689.  39h    device implementation byte B (see #P0854)
  7690.  3Ah    device implementation byte C (see #P0855)
  7691.  3Bh    device implementation byte D (see #P0856)
  7692. SeeAlso: #P0823
  7693.  
  7694. Bitfields for Cirrus Logic CL-PD6722 data mask:
  7695. Bit(s)    Description    (Table P0843)
  7696.  7-0    data mask for corresponding I/O map
  7697.     0 = no mask
  7698.     1 = mask corresponding bit from data
  7699. SeeAlso: #P0842
  7700.  
  7701. Bitfields for Cirrus Logic CL-PD6722/6729 extension control 1:
  7702. Bit(s)    Description    (Table P0844)
  7703.  7-6    (CL-PD6722) DMA mode
  7704.     00 = disabled
  7705.     01 = enabled, INPACK used as active-low DREQ input
  7706.     10 = enabled, WP/IOIS16 used as active-low DREQ input
  7707.     11 = enabled, BVD2/SPKR used as active-low DREQ input
  7708.     (CL-PD6729) reserved
  7709.  5    pull-ups disable
  7710.  4-3    (CL-PD6722) reserved
  7711.  4    (CL-PD6729) management IRQ output invert
  7712.     0 = management IRQ is active-high
  7713.     1 = management IRQ is active-low and open-drain
  7714.  3    (CL-PD6729) card IRQ output invert
  7715.     0 = card IRQ is active-high
  7716.     1 = card IRQ is active-low and open-drain
  7717.  2    LED activity enable
  7718.  1    auto power clear disable (register 02h bit 4 is not cleared when card
  7719.       is removed)
  7720.  0    Vcc power bit (register 02h bit 4) lock enable
  7721. SeeAlso: #P0842
  7722.  
  7723. Bitfields for Cirrus Logic CL-PD6722 maximum DMA acknowledge delay:
  7724. Bit(s)    Description    (Table P0845)
  7725.  7-0    maximum DMA acknowledge delay
  7726.     10h = 14 clocks
  7727.     20h = 10 clocks
  7728.     30h = 18 clocks
  7729.     40h = 8 clocks
  7730.     50h = 16 clocks
  7731.     60h = 12 clocks
  7732.     80h = 7 clocks
  7733.     90h = 15 clocks
  7734.     A0h = 11 clocks
  7735.     B0h = 19 clocks
  7736.     C0h = 9 clocks
  7737.     D0h = 17 clocks
  7738.     E0h = 13 clocks
  7739. SeeAlso: #P0842
  7740.  
  7741. Bitfields for Cirrus Logic CL-PD6722 external data (socket A):
  7742. Bit(s)    Description    (Table P0846)
  7743. --- register 2Fh extended index 0Bh bits 4-3 = 00 ---
  7744.  7-0    (socket A) scratchpad
  7745.  7-4    (socket B) scratchpad
  7746.  3    (socket B) socket B VS2# input level (read-only)
  7747.  2    (socket B) socket B VS1# input level (read-only)
  7748.  1    (socket B) socket A VS2# input level (read-only)
  7749.  0    (socket B) socket A VS1# input level (read-only)
  7750. --- register 2Fh extended index 0Bh bits 4-3 = 01 ---
  7751.  7-0    external read port
  7752. --- register 2Fh extended index 0Bh bits 4-3 = 10 ---
  7753.  7-0    external write port (read returns value written)
  7754. --- register 2Fh extended index 0Bh bits 4-3 = 10 ---
  7755.  7-0    reserved
  7756. ------
  7757. Note:    for software compatibility this register should only be used as write
  7758.       port, and bits 7-4 should be ignored
  7759. SeeAlso: #P0842
  7760.  
  7761. Bitfields for Cirrus Logic CL-PD6729 external data:
  7762. Bit(s)    Description    (Table P0847)
  7763.  7-4    reserved
  7764.  3    socket B VS2# input level (read-only)
  7765.  2    socket B VS1# input level (read-only)
  7766.  1    socket A VS2# input level (read-only)
  7767.  0    socket A VS1# input level (read-only)
  7768. SeeAlso: #P0842
  7769.  
  7770. Bitfields for Cirrus Logic CL-PD6722 extension control 2:
  7771. Bit(s)    Description    (Table P0848)
  7772.  7-6    reserved (0)
  7773.  5    GPSTB output
  7774.     0 = active-low
  7775.     1 = active-high
  7776.  4    GPSTB on IOW
  7777.     0 = A_GPSTB used as voltage sense
  7778.     1 = A_GPSTB used to strobe I/O writes on SD15-8
  7779.  3    GPSTB on IOR
  7780.     0 = B_GPSTB used as voltage sense
  7781.     1 = B_GPSTB used to strobe I/O writes on SD15-8
  7782.  2    totem-pole GPSTB
  7783.     0 = GPSTB outputs are open-collector
  7784.     1 = GPSTB outputs are totem-pole (high level driven to +5V pin level
  7785.       instead of high-impedance)
  7786.  1-0    reserved (0)
  7787. SeeAlso: #P0842
  7788.  
  7789. Bitfields for Cirrus Logic CL-PD6729 misc. control 3:
  7790. Bit(s)    Description    (Table P0849)
  7791.  7    multimedia arm enable
  7792.  6    multimedia expand enable (allows 24-bit video)
  7793.  5-0    reserved
  7794. SeeAlso: #P0842
  7795.  
  7796. Bitfields for Cirrus Logic CL-PD6729 product ID byte:
  7797. Bit(s)    Description    (Table P0850)
  7798.  7-4    family code (read-only)
  7799.     2h = CL-PD6729 family
  7800.  3-0    product code (read-only)
  7801. --- family code = 2h ---
  7802.     0h = CL-PD6729 PCI/PCMCIA controller, dual isolated sockets, 208 pin
  7803.     1h-Fh = reserved
  7804. SeeAlso: #P0842
  7805.  
  7806. Bitfields for Cirrus Logic CL-PD6729 device capability byte A:
  7807. Bit(s)    Description    (Table P0851)
  7808.  7    output LEDs (read-only)
  7809.     0 = single LED
  7810.     1 = LED per socket
  7811.  6    reserved (read-only)
  7812.  5    general purpose strobe (GPSTB) capable (read-only)
  7813.  4    reserved (read-only)
  7814.  3    DMA slave (read-only)
  7815.  2    IDE interface (read-only)
  7816.  1-0    number of sockets (read-only)
  7817.     00 = two
  7818. Note:    CL-PD6729 does not support GPSTB even if bit 5 = 1
  7819. SeeAlso: #P0842
  7820.  
  7821. Bitfields for Cirrus Logic CL-PD6729 device capability byte B:
  7822. Bit(s)    Description    (Table P0852)
  7823.  7    extended definitions (read-only)
  7824.     0 = not available (device capability and implementation definitions
  7825.       stop to extended register 3Bh)
  7826.  6-3    reserved (read-only)
  7827.  2    CLKRUN support (read-only)
  7828.  1    LOCK# support (read-only)
  7829.  0    CardBus transfer cycle support (read-only)
  7830. SeeAlso: #P0842
  7831.  
  7832. Bitfields for Cirrus Logic CL-PD6729 device implementation byte A:
  7833. Bit(s)    Description    (Table P0853)
  7834.  7    RI_OUT wired to ring indicate circuitry
  7835.  6    hardware suspend wired to power management circuitry
  7836.  5    GBSTB B wired
  7837.  4    GBSTB A wired
  7838.  3    VS1/VS2 wired
  7839.  2    slave DMA wired
  7840.  1    sockets present 1
  7841.  0    sockets present 0
  7842. SeeAlso: #P0842
  7843.  
  7844. Bitfields for Cirrus Logic CL-PD6729 device implementation byte B:
  7845. Bit(s)    Description    (Table P0854)
  7846.  7    reserved
  7847.  6    radio frequency rated sockets
  7848.  5    VPP_VCC 1A capable
  7849.  4    VPP 12V support
  7850.  3    x.xV capable
  7851.  2    y.yV capable
  7852.  1    5.0V capable
  7853.  0    3.3V capable
  7854. SeeAlso: #P0842
  7855.  
  7856. Bitfields for Cirrus Logic CL-PD6729 device implementation byte C:
  7857. Bit(s)    Description    (Table P0855)
  7858.  7-5    reserved
  7859.  4    socket B wired for ZV operation
  7860.  3    socket A wired for ZV operation
  7861.  2    speaker wired to SPKR_OUT
  7862.  1    separate status LED for each socket
  7863.  0    status LED wired to LED_OUT#
  7864. SeeAlso: #P0842
  7865.  
  7866. Bitfields for Cirrus Logic CL-PD6729 device implementation byte D:
  7867. Bit(s)    Description    (Table P0856)
  7868.  7    reserved
  7869.  6    external clock wired to EXT_CLK
  7870.  5-2    reserved
  7871.  1    LOCK# wired
  7872.  0    CLKRUN wired
  7873. SeeAlso: #P0842
  7874. ----------P03E003E7--------------------------
  7875. PORT 03E0-03E7    - LPT port address on the UniRAM card by German magazine c't
  7876. Range:    selectable from PORT 0260h, PORT 02E0h, PORT 02E8h, PORT 02F0h,
  7877.       PORT 03E0h, or PORT 03E8h.
  7878. SeeAlso: PORT 03E8h"UniRAM"
  7879. ----------P03E003E7--------------------------
  7880. PORT 03E0-03E7 - COM port addresses on UniRAM card by German magazine c't
  7881. Range:    selectable from PORT 0238h, PORT 02E8h, PORT 02F8h, PORT 0338h,
  7882.       PORT 03E0h, PORT 03E8h, or PORT 03F8h
  7883. SeeAlso: PORT 03E0h"UniRAM"
  7884. ----------P03E203E3--------------------------
  7885. PORT 03E2-03E3 - OPTi 82C824 - CardBus Bridge registers
  7886. Range:    PORT 03E0h or PORT 03E2h
  7887. SeeAlso: PORT 03E0h"CardBus"
  7888.  
  7889. 03E2  ?W  index for data register
  7890. 03E3  RW  CardBus registers
  7891. ----------P03E803EF--------------------------
  7892. PORT 03E8-03EF - serial port, same as 02E8, 02F8 and 03F8 (COM3)
  7893. SeeAlso: PORT 03F8h-03FFh
  7894. ----------P03E803EF--------------------------
  7895. PORT 03E8-03EF - COM port addresses on UniRAM card by German magazine c't
  7896. Range:    selectable from PORT 0238h, PORT 02E8h, PORT 02F8h, PORT 0338h,
  7897.       PORT 03E0h, PORT 03E8h, or PORT 03F8h
  7898. SeeAlso: PORT 03E0h"UniRAM"
  7899. ----------P03E803EF--------------------------
  7900. PORT 03E8-03EF - LPT port address on the UniRAM card by German magazine c't
  7901. Range:    selectable from PORT 0260h, PORT 02E0h, PORT 02E8h, PORT 02F0h,
  7902.       PORT 03E0h, or PORT 03E8h.
  7903. SeeAlso: PORT 03E8h"UniRAM"
  7904. ----------P03EB------------------------------
  7905. PORT 03EB - GI1904 Scanner Interface Adapter
  7906. Range:    PORT 022Bh, PORT 026Bh, PORT 02ABh (default), PORT 02EBh, PORT 032Bh,
  7907.       PORT 036Bh, PORT 03ABh
  7908. ----------P03EC------------------------------
  7909. PORT 03EC - GS-IF Scanner Interface adapter
  7910. Range:    PORT 022Ch, PORT 026Ch, PORT 02ACh, PORT 02ECh (default),
  7911.       PORT 032Ch, PORT 036Ch, PORT 03ACh, PORT 03ECh
  7912. Note:    many SPI 400dpi/800dpi gray / H/T handy scanner by Marstek, Mustek and
  7913.       others use this interface
  7914. ----------P03F003F7--------------------------
  7915. PORT 03F0-03F7 - FDC 1    (1st Floppy Disk Controller)    second FDC at 0370
  7916. Note:    floppy disk controller is usually an 8272, 8272A, NEC765 (or
  7917.       compatible), or an 82072 or 82077AA for perpendicular recording at
  7918.       2.88M
  7919. SeeAlso: PORT 0370h-0377h
  7920.  
  7921. 03F0  R-  diskette controller status A (PS/2) (see #P0857)
  7922. 03F0  R-  diskette controller status A (PS/2 model 30) (see #P0858)
  7923. 03F0  R-  diskette EHD controller board jumper settings (82072AA) (see #P0859)
  7924. 03F1  R-  diskette controller status B (PS/2) (see #P0860)
  7925. 03F1  R-  diskette controller status B (PS/2 model 30) (see #P0861)
  7926. 03F2  -W  diskette controller DOR (Digital Output Register) (see #P0862)
  7927. 03F3  ?W  tape drive register (on the 82077AA)
  7928.     bit 7-2     reserved, tri-state
  7929.     bit 1-0     tape select
  7930.         =00  none, drive 0 cannot be a tape drive.
  7931.         =01  drive1
  7932.         =10  drive2
  7933.         =11  drive3
  7934. 03F4  R-  diskette controller main status register (see #P0865)
  7935.     Note:    in non-DMA mode, all data transfers occur through
  7936.           PORT 03F5h and the status registers (bit 5 here
  7937.           indicates data read/write rather than than
  7938.           command/status read/write)
  7939. 03F4  -W  diskette controller data rate select register (see #P0866)
  7940. 03F5  R-  diskette command/data register 0 (ST0) (see #P0867)
  7941.     status register 1 (ST1) (see #P0868)
  7942.     status register 2 (ST2) (see #P0869)
  7943.     status register 3 (ST3) (see #P0870)
  7944. 03F5  -W  diskette command register.  The commands summarized here are
  7945.       mostly multibyte commands. This is for brief recognition only.
  7946.       (see #P0873)
  7947. 03F6  --  reserved on FDC
  7948. 03F6  rW  FIXED disk controller data register (see #P0871)
  7949. 03F7  RW  harddisk controller (see #P0872)
  7950. 03F7  R-  diskette controller DIR (Digital Input Register, PC/AT mode)
  7951.          bit 7 = 1 diskette change
  7952.          bit 6-0   tri-state on FDC
  7953. 03F7  R-  diskette controller DIR (Digital Input Register, PS/2 mode)
  7954.       (see #P0863)
  7955. 03F7  R-  diskette controller DIR (Digital Input Register, PS/2 model 30)
  7956.       (see #P0864)
  7957. 03F7  -W  configuration control register (PC/AT, PS/2)
  7958.          bit 7-2       reserved, tri-state
  7959.          bit 1-0 = 00  500 Kb/S mode (MFM)
  7960.              = 01  300 Kb/S mode (MFM)
  7961.              = 10  250 Kb/S mode (MFM)
  7962.              = 11  1   Mb/S mode (MFM) (on 82072/82077AA)
  7963.     conflict bit 0       FIXED DISK drive 0 select
  7964. 03F7  -W  configuration control register (PS/2 model 30)
  7965.          bit 7-3       reserved, tri-state
  7966.          bit 2           NOPREC (has no function. set to 0 by hardreset)
  7967.          bit 1-0 = 00  500 Kb/S mode (MFM)
  7968.              = 01  300 Kb/S mode (MFM)
  7969.              = 10  250 Kb/S mode (MFM)
  7970.              = 11  1   Mb/S mode (MFM) (on 82072/82077AA)
  7971.     conflict bit 0       FIXED DISK drive 0 select
  7972.  
  7973. Bitfields for diskette controller status A (PS/2):
  7974. Bit(s)    Description    (Table P0857)
  7975.  7    interrupt pending
  7976.  6    -DRV2    second drive installed
  7977.  5    step
  7978.  4    -track 0
  7979.  3    head 1 select
  7980.  2    -index
  7981.  1    -write protect
  7982.  0    +direction
  7983. SeeAlso: #P0858,#P0860
  7984.  
  7985. Bitfields for diskette controller status A (PS/2 model 30):
  7986. Bit(s)    Description    (Table P0858)
  7987.  7    interrupt pending
  7988.  6    DRQ
  7989.  5    step F/F
  7990.  4    -track 0
  7991.  3    head 1 select
  7992.  2    +index
  7993.  1    +write protect
  7994.  0    -direction
  7995. SeeAlso: #P0857,#P0859,#P0861
  7996.  
  7997. Bitfields for diskette EHD controller board jumper settings:
  7998. Bit(s)    Description    (Table P0859)
  7999.  7-6    drive 3
  8000.  5-4    drive 2
  8001.  3-2    drive 1
  8002.  1-0    drive 0
  8003.      00  1.2Mb
  8004.      01  720Kb
  8005.      10  2.8Mb
  8006.      11  1.4Mb
  8007. SeeAlso: #P0857
  8008.  
  8009. Bitfields for diskette controller status B (PS/2):
  8010. Bit(s)    Description    (Table P0860)
  8011.  7-6    reserved (1)
  8012.  5    drive select (0=A:, 1=B:)
  8013.  4    write data
  8014.  3    read data
  8015.  2    write enable
  8016.  1    motor enable 1
  8017.  0    motor enable 0
  8018. SeeAlso: #P0857,#P0861
  8019.  
  8020. Bitfields for diskette controller status B (PS/2 model 30):
  8021. Bit(s)    Description    (Table P0861)
  8022.  7    -DRV2 second drive installed
  8023.  6    -DS1
  8024.  5    -DS0
  8025.  4    write data F/F
  8026.  3    read data F/F
  8027.  2    write enable F/F
  8028.  1    -DS3
  8029.  0    -DS2
  8030. SeeAlso: #P0858,#P0860
  8031.  
  8032. Bitfields for diskette controller Digital Output Register (DOR):
  8033. Bit(s)    Description    (Table P0862)
  8034.  7-6    reserved on PS/2
  8035.  7    drive 3 motor enable
  8036.  6    drive 2 motor enable
  8037.  5    drive 1 motor enable
  8038.  4    drive 0 motor enable
  8039.  3    diskette DMA enable (reserved PS/2)
  8040.  2    =1  FDC enable    (controller reset)
  8041.     =0  hold FDC at reset
  8042.  1-0    drive select (0=A 1=B ..)
  8043. SeeAlso: #P0857,#P0865,#P0866,#P0863
  8044.  
  8045. Bitfields for diskette controller Digital Input Register (PS/2 mode):
  8046. Bit(s)    Description    (Table P0863)
  8047.  7    = 1 diskette change
  8048.  6-3    = 1
  8049.  2    datarate select1
  8050.  1    datarate select0
  8051.  0    = 0 high density select (500Kb/s, 1Mb/s)
  8052.  0    (conflict) FIXED DISK drive 0 select
  8053. SeeAlso: #P0864,#P0862
  8054.  
  8055. Bitfields for diskette controller Digital Input Register (PS/2 model 30):
  8056. Bit(s)    Description    (Table P0864)
  8057.  7    = 0 diskette change
  8058.  6-4    = 0
  8059.  3    -DMA gate (value from DOR register)
  8060.  2    NOPREC (value from CCR register)
  8061.  1    datarate select1
  8062.  0    datarate select0
  8063.  0    (conflict) FIXED DISK drive 0 select
  8064. SeeAlso: #P0863
  8065.  
  8066. Bitfields for diskette controller main status register:
  8067. Bit(s)    Description    (Table P0865)
  8068.  7    =1  RQM     data register is ready
  8069.     =0  no access is permitted
  8070.  6    =1  transfer is from controller to system
  8071.     =0  transfer is from system to controller
  8072.  5    non-DMA mode
  8073.  4    diskette controller is busy
  8074.  3    drive 3 busy (reserved on PS/2)
  8075.  2    drive 2 busy (reserved on PS/2)
  8076.  1    drive 1 busy (= drive is in seek mode)
  8077.  0    drive 0 busy (= drive is in seek mode)
  8078. SeeAlso: #P0862
  8079.  
  8080. Bitfields for diskette controller data rate select register:
  8081. Bit(s)    Description    (Table P0866)
  8082.  7-2    reserved on 8272
  8083.  7    software reset (self clearing)    82072/82077AA
  8084.  6    power down            82072/82077AA
  8085.  5    (8272/82077AA) reserved (0)
  8086.     (82072) PLL select bit
  8087.  4-2    write precompensation value, 000 default
  8088.  1-0    data rate select
  8089.     =00  500 Kb/S MFM    250 Kb/S FM
  8090.     =01  300 Kb/S MFM    150 Kb/S FM
  8091.     =10  250 Kb/S MFM    125 Kb/S FM
  8092.     =11  1Mb/S    MFM    illegal     FM on 8207x
  8093. SeeAlso: #P0862
  8094.  
  8095. Bitfields for diskette command/data register 0 (ST0):
  8096. Bit(s)    Description    (Table P0867)
  8097.  7-6    last command status
  8098.     00  command terminated successfully
  8099.     01  command terminated abnormally
  8100.     10  invalid command
  8101.     11  terminated abnormally by change in ready signal
  8102.  5    seek completed
  8103.  4    equipment check occurred after error
  8104.  3    not ready
  8105.  2    head number at interrupt
  8106.  1-0    unit select (0=A 1=B .. ) (on PS/2: 01=A  10=B)
  8107. SeeAlso: #P0868,#P0869,#P0870
  8108.  
  8109. Bitfields for diskette status register 1 (ST1):
  8110. Bit(s)    Description    (Table P0868)
  8111.  7    end of cylinder; sector# greater then sectors/track
  8112.  6    =0
  8113.  5    CRC error in ID or data field
  8114.  4    overrun
  8115.  3    =0
  8116.  2    sector ID not found
  8117.  1    write protect detected during write
  8118.  0    ID address mark not found
  8119. SeeAlso: #P0867,#P0869,#P0870
  8120.  
  8121. Bitfields for diskette status register 2 (ST2):
  8122. Bit(s)    Description    (Table P0869)
  8123.  7    =0
  8124.  6    deleted Data Address Mark detected
  8125.  5    CRC error in data
  8126.  4    wrong cylinder detected
  8127.  3    scan command equal condition satisfied
  8128.  2    scan command failed, sector not found
  8129.  1    bad cylinder, ID not found
  8130.  0    missing Data Address Mark
  8131. SeeAlso: #P0867,#P0868,#P0870
  8132.  
  8133. Bitfields for diskette status register 3 (ST3):
  8134. Bit(s)    Description    (Table P0870)
  8135.  7    fault status signal
  8136.  6    write protect status
  8137.  5    ready status
  8138.  4    track zero status
  8139.  3    two sided status signal
  8140.  2    side select (head select)
  8141.  1-0    unit select (0=A 1=B .. )
  8142. SeeAlso: #P0867,#P0868,#P0869
  8143.  
  8144. Bitfields for fixed disk controller data register:
  8145. Bit(s)    Description    (Table P0871)
  8146.  7-4    reserved
  8147.  3    =0  reduce write current
  8148.     =1  head select 3 enable
  8149.  2    disk reset enable
  8150.  1    disk initialization disable
  8151.  0    reserved
  8152. SeeAlso: #P0862,#P0872
  8153.  
  8154. Bitfields for hard disk controller:
  8155. Bit(s)    Description    (Table P0872)
  8156.  6    FIXED DISK write gate
  8157.  5    FIXED DISK head select 3 / reduced write current
  8158.  4    FIXED DISK head select 2
  8159.  3    FIXED DISK head select 1
  8160.  2    FIXED DISK head select 0
  8161.  1    FIXED DISK drive 1 select
  8162.  0    FIXED DISK drive 0 select
  8163. SeeAlso: #P0871
  8164.  
  8165. (Table P0873)
  8166. Values for diskette commands:
  8167.     MFM = MFM mode selected, opposite of MF mode
  8168.     HDS = head select
  8169.     DS  = drive select
  8170.     MT  = multi track operation
  8171.     SK  = skip deleted data address mark
  8172.    Command         # bytes    D7  6    5   4    3   2    1   0
  8173.  read track        9    0  MFM    0   0    0   0    1   0
  8174.                 0   0    0   0    0 HDS DS1 DS0
  8175.  specify        3    0   0    0   O    O   O    1   1
  8176.  sense drive status    2    0   0    0   0    0   1    0   0
  8177.                 0   0    0   0    0 HDS DS1 DS0
  8178.  write data        9    MT MFM    0   0    0   1    0   1
  8179.                 0   0    0   0    0 HDS DS1 DS0
  8180.  read data        9    MT MFM SK   0    0   1    1   0
  8181.                 0   0    0   0    0 HDS DS1 DS0
  8182.  recalibrate        2    0   0    0   0    0   1    1   1
  8183.                 0   0    0   0    0   0 DS1 DS0
  8184.  sense interrupt status 1    0   0    0   0    1   0    0   0
  8185.  write deleted data    9    MT MFM    0   0    1   0    0   1
  8186.                 0   0    0   0    0 HDS DS1 DS0
  8187.  read ID        2    0  MFM    0   0    1   0    1   0
  8188.                 0   0    0   0    0 HDS DS1 DS0
  8189.  read deleted data    9    MT MFM SK   0    1   1    0   0
  8190.                 0   0    0   0    0 HDS DS1 DS0
  8191.  format track        10    0  MFM    0   0    1   1    0   1
  8192.                 0   0    0   0    0 HDS DS1 DS0
  8193.  dumpreg **        1    0   0    0   0    1   1    1   0
  8194.  seek            3    0   0    0   0    1   1    1   1
  8195.                 0   0    0   0    0 HDS DS1 DS0
  8196.  version** (see #P0874) 1    0   0    0   1    0   0    0   0
  8197.  scan equal *        9    MT MFM SK   1    0   0    0   1
  8198.                 0   0    0   0    0 HDS DS1 DS0
  8199.  perpendicular mode **    2    0   0    0   1    0   0    1   0
  8200.                 0   0    0   0    0   0 WGATE GAP
  8201.  configure **        4    0   0    0   1    0   0    1   1
  8202.                 0   0    0   0    0   0    0   0
  8203.  unlock FIFO **        1    0   0    0   1    0   1    0   0
  8204.  verify            9    MT MFM SK   1    0   1    1   0
  8205.                 EC  0    0   0    0 HDS DS1 DS0
  8206.  partid ** (see #P0874) 1    0   0    0   1    1   0    0   0
  8207.  scan low or equal *    9    MT MFM SK   1    1   0    0   1
  8208.                 0   0    0   0    0 HDS DS1 DS0
  8209.  scan high or equal *    9    MT MFM SK   1    1   1    0   1
  8210.                 0   0    0   0    0 HDS DS1 DS0
  8211.  exit standby mode ***    1    0   0    1   1    0   1    0   0
  8212.  enter standby mode ***    1    0   0    1   1    0   1    0   1
  8213.  hard reset ***        1    0   0    1   1    0   1    1   0
  8214.  lock FIFO **        1    1   0    0   1    0   1    0   0
  8215.  relative seek **    3    1  DIR    0   0    1   1    1   1
  8216.                 0   0    0   0    0 HDS DS1 DS0
  8217. BEWARE: not every invalid command is treated as invalid!
  8218.  *   Note: the scan commands aren't mentioned for the 82077AA.
  8219.  **  Note: EHD controller commands.
  8220.  *** Note: Supported by NEC72065B only.
  8221.  
  8222. (Table P0874)
  8223. Values for FDC Controller chip type identification:
  8224.   version lFIFO partid Chip type
  8225.     80h       80h      -    NEC D765, Intel 8272A or compatible
  8226.     80h       00h      -    Intel 82072
  8227.     81h        -      -    Very Early Intel 82077 or compatible
  8228.     90h       80h      -    Old Intel 82077, no FIFO
  8229.     90h        ?      ?    NEC 72065B
  8230.     90h       00h     80h   New Intel 82077 (82077AA if port 3x3h bits 1-0 are R/W)
  8231.     90h       00h     41h   Intel 82078
  8232.     90h       00h     73h   National Semiconductor PC87306
  8233.     90h       00h    other  Intel 82078 compatible
  8234.     A0h        -      -    SMC FDC37c65C+
  8235. Note:    Before issuing the partid command, one must first issue an unlock
  8236.       FIFO, immediately followed by a lock FIFO instruction. The status
  8237.       byte returned by the lock FIFO instruction is used in the table above
  8238. SeeAlso: #P0873
  8239. ----------P03F003F1--------------------------
  8240. PORT 03F0-03F1 - PCTech RZ1000 IDE controller
  8241. Note:    to unlock access to these ports instead of the standard floppy
  8242.       controller status ports at these two addresses, you must perform
  8243.       two immediately successive 8-bit OUTs of 55h to PORT 03F0h (there
  8244.       is a fairly small time limit between the two accesses, so there
  8245.       should be no other instructions between the two OUTs); after
  8246.       that, values written to PORT 03F0h select the data accessed through
  8247.       PORT 03F1h until an AAh is written to 03F0h
  8248. SeeAlso: #00732
  8249.  
  8250. 03F0  ?W  index port (see #P0875)
  8251. 03F1  RW  data port
  8252.  
  8253. (Table P0875)
  8254. Values for RZ1000 IDE controller registers:
  8255.  00h    ???
  8256.     bit 7:
  8257.     bit 1:
  8258.     bit 0:
  8259.  01h    ???
  8260.  02h    ???
  8261.  03h    ???
  8262.  04h    ???
  8263.  05h    ???
  8264.     bit 1:
  8265.  AAh    lock control port
  8266. ----------P03F803FF--------------------------
  8267. PORT 03F8-03FF - Serial port (8250,8250A,8251,16450,16550,16550A,etc.) COM1
  8268. Range:    PORT 02E8h-02EFh (COM2), PORT 02F8h-02FFh (typical non-PS/2 COM3), and
  8269.       PORT 03E8h-03EFh (typical non-PS/2 COM4)
  8270. Note:    chips overview:
  8271.      8250  original PC, specified up to 56Kbd, but mostly runs
  8272.            only 9600Bd, no scratchregister, bug: sometimes shots
  8273.            ints without reasons
  8274.      8250A, 16450, 16C451: ATs, most chips run up to 115KBd,
  8275.            no bug: shots no causeless ints
  8276.      8250B: PC,XT,AT, pseudo bug: shots one causeless int for
  8277.         compatibility with 8250, runs up to 56KBd
  8278.      16550, 16550N, 16550V: early PS/2, FIFO bugs
  8279.      16550A,16550AF,16550AFN,16550C,16C551,16C552: PS/2, FIFO ok
  8280.      82510: laptops & industry, multi emulation mode
  8281.         (default=16450), special-FIFO.
  8282.      8251: completely different synchronous SIO chip, not compatible!
  8283. SeeAlso: INT 14/AH=00h"SERIAL"
  8284.  
  8285. 03F8  -W  serial port, transmitter holding register (THR), which contains the
  8286.       character to be sent. Bit 0 is sent first.
  8287.         bit 7-0      data bits when DLAB=0 (Divisor Latch Access Bit)
  8288. 03F8  R-  receiver buffer register (RBR), which contains the received
  8289.       character. Bit 0 is received first
  8290.          bit 7-0   data bits when DLAB=0 (Divisor Latch Access Bit)
  8291. 03F8  RW  divisor latch low byte (DLL) when DLAB=1 (see #P0876)
  8292. 03F9  RW  divisor latch high byte (DLM) when DLAB=1 (see #P0876)
  8293. 03F9  RW  interrupt enable register (IER) when DLAB=0 (see #P0877)
  8294. 03FA  R-  interrupt identification register (see #P0878)
  8295.     Information about a pending interrupt is stored here. When the ID
  8296.       register is addressed, thehighest priority interrupt is held, and
  8297.       no other interrupts are acknowledged until the CPU services that
  8298.       interrupt.
  8299. 03FA  -W  16650 FIFO Control Register (FCR) (see #P0879)
  8300. 03FB  RW  line control register (LCR) (see #P0880)
  8301. 03FC  RW  modem control register (see #P0881)
  8302. 03FD  R-  line status register (LSR) (see #P0882)
  8303. 03FE  R-  modem status register (MSR) (see #P0883)
  8304. 03FF  RW  scratch register (SCR)
  8305.     (not used for serial I/O; available to any application using 16450,
  8306.       16550) (not present on original 8250)
  8307.  
  8308. (Table P0876)
  8309. Values for serial port divisor latch registers:
  8310.  Some baudrates (using standard 1.8432 Mhz clock):
  8311.        baudrate       divisor     DLM  DLL
  8312.         50       2304          09h 00h
  8313.         75       1536          06h 00h
  8314.        110       1047          04h 17h
  8315.        134,5    857          03h 59h
  8316.        150        768          03h 00h
  8317.        300        384          01h 80h
  8318.        600        192          00h C0h
  8319.       1200         96          00h 60h
  8320.       1800         64          00h 40h
  8321.       2000         58          00h 3Ah
  8322.       2400         48          00h 30h
  8323.       3600         32          00h 20h
  8324.       4800         24          00h 18h
  8325.       7200         16          00h 10h
  8326.       9600         12          00h 0Ch
  8327.      19200          6          00h 06h
  8328.      38400          3          00h 03h
  8329.      57600          2          00h 02h
  8330.     115200          1          00h 01h
  8331. Note:    MIDI baudrate 32250Bd with 4Mhz quarz for c't MIDI interface
  8332.       following c't 01/1991:   '14400'      00h 08h
  8333.  
  8334. Bitfields for serial port interrupt enable register (IER):
  8335. Bit(s)    Description    (Table P0877)
  8336.  7-6    reserved (0)
  8337.  5    (82510) "timer"
  8338.     (other) reserved (0)
  8339.  4    (82510) "transmit machine"
  8340.     (other) reserved (0)
  8341.  3    modem-status interrupt enable
  8342.  2    receiver-line-status interrupt enable
  8343.  1    transmitter-holding-register empty interrupt enable
  8344.  0    received-data-available interrupt enable
  8345.       (also 16550(A) timeout interrupt)
  8346. Note:    16550(A) will interrupt with a timeout if data exists in the FIFO
  8347.       and isn't read within the time it takes to receive four bytes or if
  8348.       no data is received within the time it takes to receive four bytes
  8349. SeeAlso: #P0878
  8350.  
  8351. Bitfields for serial port interrupt identification register (IIR):
  8352. Bit(s)    Description    (Table P0878)
  8353.  7-6    =00  reserved on 8250, 8251, 16450
  8354.     =01  if FIFO queues enabled but unusable (16550 only)
  8355.     =11  if FIFO queues are enabled (16550A only) (see also #P0879)
  8356.  6-5    used by 82510 for bank select (00 = default bank0)
  8357.  5-4    reserved (0)
  8358.  3-1    identify pending interrupt with the highest priority
  8359.     110    (16550,82510) timeout interrupt pending
  8360.     101    (82510) timer interrupt (see #P0877)
  8361.     100    (82510) transmit machine (see #P0877)
  8362.     011    receiver line status interrupt. priority=highest
  8363.     010    received data available register interrupt. pr.=second
  8364.     001    transmitter holding register empty interrupt. pr.=third
  8365.     000    modem status interrupt. priority=fourth
  8366.  0    =0 interrupt pending. contents of register can be used as a pointer
  8367.       to the appropriate interrupt service routine
  8368.     =1 no interrupt pending
  8369. Notes:    interrupt pending flag uses reverse logic, 0=pending, 1=none
  8370.     interrupt will occur if any of the line status bits are set
  8371.     THRE bit is set when THRE register is emptied into the TSR
  8372. SeeAlso: #P0877
  8373.  
  8374. Bitfields for serial port FIFO control register (FCR):
  8375. Bit(s)    Description    (Table P0879)
  8376.  7-6    received data available interrupt trigger level (16550)
  8377.     00  1 byte
  8378.     01  4 bytes
  8379.     10  8 bytes
  8380.     11 14 bytes
  8381.  6-5    =00  (used to enable 4 byte Rx/Tx FIFOs on 82510???)
  8382.     =10 ???
  8383.  5-4    reserved (00)
  8384.  3    change RXRDY  TXRDY pins from mode 0 to mode 1
  8385.  2    clear XMIT FIFO
  8386.  1    clear RCVR FIFO
  8387.  0    enable clear XMIT and RCVR FIFO queues
  8388.  4-0    (other purpose on 82510???)
  8389. Notes:    bit 0 must be set in order to write to other FCR bits
  8390.     bit 1 when set    the RCVR FIFO is cleared and this bit is reset
  8391.       the receiver shift register is not cleared
  8392.     bit 2 when set    the XMIT FIFO is cleared and this bit is reset
  8393.       the transmit shift register is not cleared
  8394.     due to a hardware bug, 16550 FIFOs don't work correctly (this
  8395.       was fixed in the 16550A)
  8396. SeeAlso: #P0878
  8397.  
  8398. Bitfields for serial port Line Control Register (LCR):
  8399. Bit(s)    Description    (Table P0880)
  8400.  7    =1  divisor latch access bit (DLAB)
  8401.     =0  receiver buffer, transmitter holding, or interrupt enable register
  8402.       access
  8403.  6    set break enable. serial ouput is forced to spacing state and remains
  8404.       there.
  8405.  5-3    PM2 PM1 PM0
  8406.      x   x     0 = no parity
  8407.      0   0     1 = odd parity
  8408.      0   1     1 = even parity
  8409.      1   0     1 = high parity (sticky)
  8410.      1   1     1 = low parity (sticky)
  8411.      x   x     1 = software parity
  8412.  2    stop bit length (STB/SBL)
  8413.     0  one stop bit
  8414.     1  2 stop bits with (word length 6, 7, 8)
  8415.        1.5 stop bits with word length 5
  8416.  1-0    (WLS1-0, CL1-0)
  8417.     00 word length is 5 bits
  8418.     01 word length is 6 bits
  8419.     10 word length is 7 bits
  8420.     11 word length is 8 bits
  8421. SeeAlso: #P0881,#P0882,#P0883
  8422.  
  8423. Bitfields for serial port Modem Control Register (MCR):
  8424. Bit(s)    Description    (Table P0881)
  8425.  7-6    reserved (0)
  8426.  5    (82510 only) state of OUT0 pin
  8427.  4    loopback mode for diagnostic testing of serial port
  8428.     output of transmitter shift register is looped back to receiver
  8429.       shift register input. In this mode, transmitted data is received
  8430.       immediately so that the CPU can verify the transmit data/receive
  8431.       data serial port paths.
  8432.     If OUT2 is disabled, there is no official way to generate an IRQ
  8433.       during loopback mode.
  8434.  3    auxiliary user-designated output 2 (OUT2)
  8435.     because of external circuity OUT2 must be 1 to master-intr-enableing.
  8436.     BUG: Some Toshiba Laptops utilize this bit vice versa, newer Toshiba
  8437.       machines allow assignment of the bit's polarity in system setup.
  8438.     82050: This bit is only effective, if the chip is being used with an
  8439.       externally-generated clock.
  8440.  2    =1/0  auxiliary user-designated output 1 (OUT1)
  8441.     should generally be cleared!!
  8442.     Some external hardware, e.g. c't MIDI interface (and compatibles) use
  8443.       this bit to change the 8250 input clock from 1,8432 MHz to 4Mhz
  8444.       (enabling MIDI-conformant baudrates) and switching to
  8445.       MIDI-compatible current loop connectors.
  8446.  1    force request-to-send active (RTS)
  8447.  0    force data-terminal-ready active (DTR)
  8448. SeeAlso: #P0880,#P0882,#P0883
  8449.  
  8450. Bitfields for serial port Line Status Register (LSR):
  8451. Bit(s)    Description    (Table P0882)
  8452.  7    =0  reserved
  8453.     =1  on some chips produced by UMC
  8454.  6    transmitter shift and holding registers empty
  8455.  5    transmitter holding register empty (THRE)
  8456.     Controller is ready to accept a new character to send.
  8457.  4    break interrupt. the received data input is held in the zero bit
  8458.       state longer than the time of start bit + data bits + parity bit +
  8459.       stop bits.
  8460.  3    framing error (FE). the stop bit that follows the last parity or data
  8461.       bit is a zero bit
  8462.  2    parity error (PE). Character has wrong parity
  8463.  1    overrun error (OE). a character was sent to the receiver buffer
  8464.       before the previous character in the buffer could be read. This
  8465.       destroys the previous character.
  8466.  0    data ready. a complete incoming character has been received and sent
  8467.       to the receiver buffer register.
  8468. SeeAlso: #P0880,#P0881,#P0883
  8469.  
  8470. Bitfields for serial port Modem Status Register (MSR):
  8471. Bit(s)    Description    (Table P0883)
  8472.  7    data carrier detect (-DCD)
  8473.  6    ring indicator (-RI)
  8474.  5    data set ready (-DSR)
  8475.  4    clear to send (-CTS)
  8476.  3    delta data carrier detect (DDCD)
  8477.  2    trailing edge ring indicator (TERI)
  8478.  1    delta data set ready (DDSR)
  8479.  0    delta clear to send (DCTS)
  8480. Notes:    bits 0-3 are reset when the CPU reads the MSR
  8481.     bit 4 is the Modem Control Register RTS during loopback test
  8482.     bit 5 is the Modem Control Register DTR during loopback test
  8483.     bit 6 is the Modem Control Register OUT1 during loopback test
  8484.     bit 7 is the Modem Control Register OUT2 during loopback test
  8485. SeeAlso: #P0880,#P0881,#P0882
  8486. --------!---Note-----------------------------
  8487. Note:    Adresses above 03FF generally apply to EISA and PCI machines only !
  8488.     EISA port assignments:
  8489.         1000-1FFF    slot 1 EISA
  8490.         2000-2FFF    slot 2 EISA
  8491.         3000-3FFF    slot 3 EISA
  8492.         4000-4FFF    slot 4 EISA
  8493.         5000-5FFF    slot 5 EISA
  8494.         6000-6FFF    slot 6 EISA
  8495.         7000-7FFF    slot 7 EISA
  8496. ----------P0401040B--------------------------
  8497. PORT 0401-040B - EISA DMA Controller
  8498. SeeAlso: PORT 0481h-048Bh"EISA",PORT 04D4h-04D6h"EISA"
  8499.  
  8500. 0401  RW  DMA channel 0 word count byte 2 (high)
  8501. 0403  RW  DMA channel 1 word count byte 2 (high)
  8502. 0405  RW  DMA channel 2 word count byte 2 (high)
  8503. 0407  RW  DMA channel 3 word count byte 2 (high)
  8504. 040A  -W  extended DMA chaining mode register, channels 0-3 (see #P0884)
  8505. 040A  R-  channel interrupt (IRQ13) status register (see #P0885)
  8506. 040B  -W  DMA extended mode register for channels 0-3 (see #P0886)
  8507.     (bit settings same as PORT 04D6h)
  8508.  
  8509. Bitfields for EISA extended DMA chaining mode register (channels 0-3):
  8510. Bit(s)    Description    (Table P0884)
  8511.  7-5    reserved
  8512.  4    =0  generate IRQ13
  8513.     =1  generate terminal count
  8514.  3    =0  do not start chaining
  8515.     =1  programming complete
  8516.  2    =0  disable buffer chaining mode (default)
  8517.     =1  enable buffer chaining mode
  8518.  1-0    DMA channel select
  8519. SeeAlso: #P0885,#P0886,#P0893
  8520.  
  8521. Bitfields for EISA channel interrupt (IRQ13) status register:
  8522. Bit(s)    Description    (Table P0885)
  8523.  7-5  interrupt on channels 7-5
  8524.  4      reserved
  8525.  3-0  interrupt on channels 3-0
  8526. SeeAlso: #P0884
  8527.  
  8528. Bitfields for EISA DMA extended mode register (channels 0-3):
  8529. Bit(s)    Description    (Table P0886)
  8530.  7    =0 enable stop register
  8531.  6    =0 terminal count is an output for this channel    (default)
  8532.  5-4    DMA cycle timing
  8533.     00 ISA-compatible (default)
  8534.     01 type A timing mode
  8535.     10 type B timing mode
  8536.     11 burst DMA mode
  8537.  3-2    Address mode
  8538.     00 8-bit I/O, count by bytes (default)
  8539.     01 16-bit I/O, count by words, address shifted
  8540.     10 32-bit I/O, count by bytes
  8541.     11 16-bit I/O, count by bytes
  8542.  1-0    DMA channel select
  8543. SeeAlso: #P0884,#P0894
  8544. ----------P040A043F--------------------------
  8545. PORT 040A-043F - Intel 82378ZB embedded DMA controller
  8546. Range:    relocatable via Relocation Base Address register (see #01075)
  8547. SeeAlso: PORT 0401h"EISA",#01064,#01075
  8548.  
  8549. 040A  R-  scatter/gather interrupt status (see #P0887)
  8550. 040B  -W  DMA1 extended mode
  8551. 0410  -W  CH0 scatter/gather command (see #P0888)
  8552. 0411  -W  CH1 scatter/gather command
  8553. 0412  -W  CH2 scatter/gather command
  8554. 0413  -W  CH3 scatter/gather command
  8555. 0414  -W  CH4 scatter/gather command
  8556. 0415  -W  CH5 scatter/gather command
  8557. 0416  -W  CH6 scatter/gather command
  8558. 0417  -W  CH7 scatter/gather command (see #P0888)
  8559. 0418  R-  CH0 scatter/gather status (see #P0889)
  8560. 0419  R-  CH1 scatter/gather status
  8561. 041A  R-  CH2 scatter/gather status
  8562. 041B  R-  CH3 scatter/gather status
  8563. 041C  R-  CH4 scatter/gather status
  8564. 041D  R-  CH5 scatter/gather status
  8565. 041E  R-  CH6 scatter/gather status
  8566. 041F  R-  CH7 scatter/gather status (see #P0889)
  8567. 0420d RW  CH0 scatter/gather descriptor table address
  8568. 0424d RW  CH1 scatter/gather descriptor table address
  8569. 0428d RW  CH2 scatter/gather descriptor table address
  8570. 042Cd RW  CH3 scatter/gather descriptor table address
  8571. 0430d RW  CH4 scatter/gather descriptor table address
  8572. 0434d RW  CH5 scatter/gather descriptor table address
  8573. 0438d RW  CH6 scatter/gather descriptor table address
  8574. 043Cd RW  CH7 scatter/gather descriptor table address
  8575.  
  8576. (Table P0887)
  8577. Call Intel 82378ZB Scatter/Gather Interrupt Status Register with:
  8578.  7    channel 7 has interrupt due to S/G transfer
  8579.  ...
  8580.  0    channel 0 has interrupt due to S/G transfer
  8581. SeeAlso: #P0888,#P0889
  8582.  
  8583. Bitfields for Intel 82378ZB Scatter/Gather Command Register:
  8584. Bit(s)    Description    (Table P0888)
  8585.   7    select last-buffer termination type
  8586.     =0 assert IRQ13 on completion
  8587.     =1 assert EOP on completion
  8588.  6    enable bit 7 termination-type selection
  8589.  5-2    reserved (0)
  8590.  1-0    scatter-gather command
  8591.     00 none
  8592.     01 start S/G command
  8593.     10 stop S/G command
  8594.     11 reserved
  8595. SeeAlso: #P0887,#P0889,#01075
  8596.  
  8597. Bitfields for Intel 82378ZB Scatter/Gather Status Register:
  8598. Bit(s)    Description    (Table P0889)
  8599.  7    no next link
  8600.  6    reserved
  8601.  5    issue IRQ13 instead of EOP at end of last buffer
  8602.  4    reserved
  8603.  3    scatter/gather Base Register status
  8604.     =1 buffer link has been loaded
  8605.     =0 empty
  8606.  2    scatter/gather Current Register status
  8607.     =1 buffer link has been loaded
  8608.     =0 empty
  8609.  1    reserved
  8610.  0    scatter/gather is active
  8611. SeeAlso: #P0888
  8612. --------X-P040D040F--------------------------
  8613. PORT 040D-040F - EISA - Intel 82357
  8614.  
  8615. 040D  R-  chip stepping level
  8616. 040E  RW  test register 1
  8617. 040F  RW  test register 2
  8618. ----------P04610462--------------------------
  8619. PORT 0461-0462 - EISA NMI CONTROL
  8620.  
  8621. 0461  RW  Extended NMI status/control register (see #P0890)
  8622. 0462  -W  Software NMI register. writing to this register causes an NMI    if
  8623.       NMIs are enabled
  8624.     bit 7 = 1  generates an NMI
  8625.  
  8626. Bitfields for EISA extended NMI status control register:
  8627. Bit(s)    Description    (Table P0890)
  8628.  7  R-    NMI pending from fail-safe (watchdog) timer
  8629.  6  R-    NMI pending from bus timeout NMI status
  8630.  5  R-    NMI pending from I/O port status
  8631.  4  R-    busmaster preemption timeout if bit 6 set
  8632.  3  RW    bus timeout NMI enable
  8633.  2  RW    fail-safe (watchdog) NMI enable
  8634.  1  RW    NMI I/O port enable
  8635.  0  RW    RSTDRV. bus reset
  8636.     =0  NORMAL bus reset operation
  8637.     =1  reset bus asserted
  8638. --------X-P04640465--------------------------
  8639. PORT 0464-0465 - EISA BUS MASTER STATUS
  8640.  
  8641. 0464w R      bus master status latch register (slots 1-16)
  8642.     identifies the last bus master that had control of the bus (bit N =0 if
  8643.       slot N+1 had control last)
  8644. ----------P0481048B--------------------------
  8645. PORT 0481-048B - EISA DMA page registers
  8646. Note:    these registers are also supported on many non-EISA machines, e.g. by
  8647.       most machines using Intel PCI chipsets
  8648. SeeAlso: PORT 0401h-040Bh"EISA",PORT 04C6h-04CFh"EISA"
  8649.  
  8650. 0481  RW  DMA channel 2 address byte 3 (high)
  8651. 0482  RW  DMA channel 3 address byte 3 (high)
  8652. 0483  RW  DMA channel 1 address byte 3 (high)
  8653. 0487  RW  DMA channel 0 address byte 3 (high)
  8654. 0489  RW  DMA channel 6 address byte 3 (high)
  8655. 048A  RW  DMA channel 7 address byte 3 (high)
  8656. 048B  RW  DMA channel 5 address byte 3 (high)
  8657. ----------P04C604CF--------------------------
  8658. PORT 04C6-04CF - EISA DMA count registers
  8659. SeeAlso: PORT 0401h-040Bh"EISA",PORT 0481h-048Bh"EISA",PORT 04E0h-04FFh"EISA"
  8660.  
  8661. 04C6  RW  DMA channel 5 word count byte 2 (high)
  8662. 04CA  RW  DMA channel 6 word count byte 2 (high)
  8663. 04CE  RW  DMA channel 7 word count byte 2 (high)
  8664. --------X-P04D004D1--------------------------
  8665. PORT 04D0-04D1 - EISA IRQ control
  8666. Note:    these registers are also supported on many non-EISA machines, e.g. by
  8667.       most machines using Intel PCI chipsets
  8668. SeeAlso: PORT 04D4h-040Bh"EISA"
  8669.  
  8670. 04D0  -W  IRQ 0-7 interrupt edge/level registers (see #P0891)
  8671. 04D1  -W  IRQ 8-15 interrupt edge/level registers (see #P0892)
  8672.  
  8673. Bitfields for EISA IRQ 0-7 interrupt edge/level register:
  8674. Bit(s)    Description    (Table P0891)
  8675.  7    IRQ 7 is level sensitive
  8676.  6    IRQ 6 is level sensitive
  8677.  5    IRQ 5 is level sensitive
  8678.  4    IRQ 4 is level sensitive
  8679.  3    IRQ 3 is level sensitive
  8680.  2-0    reserved
  8681. SeeAlso: #P0892
  8682.  
  8683. Bitfields for EISA IRQ 8-15 interrupt edge/level register:
  8684. Bit(s)    Description    (Table P0892)
  8685.  7    IRQ 15 is level sensitive
  8686.  6    IRQ 14 is level sensitive
  8687.  5    reserved (1)
  8688.  4    IRQ 12 is level sensitive
  8689.  3    IRQ 11 is level sensitive
  8690.  2    IRQ 10 is level sensitive
  8691.  1    IRQ 9  is level sensitive
  8692.  0    reserved
  8693. SeeAlso: #P0891
  8694. ----------P04D404D6--------------------------
  8695. PORT 04D4-04D6 - EISA DMA control
  8696. Note:    PORT 04D6h is also supported by the Intel 82378ZB System I/O controller
  8697. SeeAlso: PORT 0401h-040Bh"EISA",PORT 04D0h-04D1h"EISA"
  8698.  
  8699. 04D4  R-  DMA chaining status
  8700. 04D4  -W  extended DMA chaining mode register, channels 4-7 (see #P0893)
  8701. 04D6  -W  DMA extended mode register for channels 4-7 (see #P0894)
  8702.     bit settings same as PORT 040Bh
  8703.  
  8704. Bitfields for EISA extended DMA chaining mode register (channels 4-7):
  8705. Bit(s)    Description    (Table P0893)
  8706.  7-5    reserved (0)
  8707.  4    =0  generate IRQ 13
  8708.     =1  generate terminal count
  8709.  3    =0  do not start chaining
  8710.     =1  programming complete
  8711.  2    =0  disable buffer chaining mode (default)
  8712.     =1  enable buffer chaining mode
  8713.  1-0    DMA channel select
  8714. SeeAlso: #P0884,#P0894
  8715.  
  8716. Bitfields for EISA DMA extended mode register (channels 4-7):
  8717. Bit(s)    Description    (Table P0894)
  8718.  7    =0  enable stop register
  8719.  6    =0  terminal count is an output for this channel (default)
  8720.  5-4    DMA cycle timing
  8721.     00 ISA-compatible (default)
  8722.     01 type A timing mode
  8723.     10 type B timing mode
  8724.     11 burst DMA mode
  8725.  3-2    Address mode
  8726.     00 8-bit I/O, count by bytes (default)
  8727.     01 16-bit I/O, count by words, address shifted
  8728.     10 32-bit I/O, count by bytes
  8729.     11 16-bit I/O, count by bytes
  8730.  1-0    DMA channel select
  8731. SeeAlso: #P0886,#P0893
  8732. ----------P04E004FF--------------------------
  8733. PORT 04E0-04FF - EISA DMA stop registers
  8734. SeeAlso: PORT 0481h-048Bh"EISA"
  8735.  
  8736. 04E0-04E2  RW    channel 0 stops if DMA transfer reaches specified address
  8737. 04E4-04E6  RW    channel 1
  8738. 04E8-04EA  RW    channel 2
  8739. 04EC-04EE  RW    channel 3
  8740. 04F4-04F6  RW    channel 5
  8741. 04F8-04FA  RW    channel 6
  8742. 04FC-04FE  RW    channel 7
  8743. ----------P05300533--------------------------
  8744. PORT 0530-0533 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  8745. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  8746.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  8747. SeeAlso: PORT 0530h"Windows Sound System"
  8748.  
  8749. 0530  RW  address select (see #P0895)
  8750. 0531  RW  data (selected by PORT 0530h)
  8751. 0532  RW  status
  8752. 0533  RW  PIO data
  8753. ----------P05300537--------------------------
  8754. PORT 0530-0537 - Windows Sound System ("WSS") (default address)
  8755. Range:    dipswitch selectable among PORT 0530h-0537h,PORT 0604h-060Bh,
  8756.       PORT 0E80h-0E87h, and PORT 0F40h-0F47h
  8757. Notes:    the Sound Galaxy NX16 sound cards contains a Crystal CS4231, and thus
  8758.       support the CODEC portion of the WSS on ports 0534h-0537h
  8759.       (or 0608h-060Bh, etc.)
  8760.     the AMD InterWave chip supports a superset of the WSS CS4231 Codec,
  8761.       though by default it is not placed at any of the addresses used by
  8762.       the WSS
  8763. SeeAlso: PORT 032Ch"InterWave",PORT 0340h"Gravis",PORT 0530h"Vendetta"
  8764.  
  8765. 0534  ?W  register select (index) (see #P0895)
  8766. 0535  RW  data register (selected by PORT 0534h)
  8767. 0536  R?  (CS4231A) status register
  8768. 0537  RW  (CS4231A) PIO data register
  8769.  
  8770. (Table P0895)
  8771. Values for Windows Sound System CS4231 Codec register number:
  8772.  00h    Mixer: ADC volume (left)
  8773.  01h    Mixer: ADC volume (right)
  8774.  02h    Mixer: Line In volume (right) (see #P0896)
  8775.  03h    Mixer: Line In volume (left) (see #P0896)
  8776.  04h    Mixer: FM volume (right) (see #P0896)
  8777.  05h    Mixer: FM volume (left) (see #P0896)
  8778.  06h    Mixer: playback DAC volume (left)
  8779.  07h    Mixer: playback DAC volume (right)
  8780.  08h    playback data format
  8781.  09h    configuration register 1
  8782.  0Ah    external control
  8783.  0Bh    Codec status register 2
  8784.  0Ch    mode select
  8785.     bit 6: ???
  8786.  0Dh    loopback control
  8787.     (Sound Galaxy) microphone input enabled by bit 0 ???
  8788.  0Eh    playback count (high)
  8789.  0Fh    playback count (low)
  8790.  10h    configuration register 2
  8791.  11h    configuration register 3
  8792.  12h    Mixer: CD volume (right) (see #P0896)
  8793.  13h    Mixer: CD volume (left) (see #P0896)
  8794.  14h    timer (low)
  8795.  15h    timer (high)
  8796.  16h    Mixer: microphone input control (left)
  8797.  17h    Mixer: microphone input control (right)
  8798.  18h    Codec status register 3
  8799.  19h    Mixer: output attenuation (left)
  8800.  1Ah    mono input/output control
  8801.     (Sound Galaxy) SB volume (see #P0897)
  8802.  1Bh    Mixer: output attenuation (right)
  8803.  1Ch    record data format
  8804.  1Dh    playback variable frequency
  8805.  1Eh    record count (high)
  8806.  1Fh    record count (low)
  8807.  48h    (Sound Galaxy) ???
  8808. Notes:    to enable the microphone input on the Sound Galaxy, ALL of the
  8809.       following registers must be set: 00h set to 80h, 01h set to 80h,
  8810.       07h to 00h, 0Dh to 01h, and 48h to 4Bh
  8811.     on the Sound Galaxy NX16, only bits 0-4 of the register number are
  8812.       fully decoded, so most registers above 1Fh are aliases of the
  8813.       first 32 registers
  8814.  
  8815. Bitfields for WSS mixer volume:
  8816. Bit(s)    Description    (Table P0896)
  8817.  7    disable input source
  8818.  6-5    reserved???
  8819.  4-0    volume (00h = highest, 1Fh = lowest)
  8820. SeeAlso: #P0895,#P0897
  8821. Note:    the GW2000 GWBVOL.EXE only permits the setting of volume levels
  8822.       08h (reported as 16) to 18h (reported as 0, and sets bit 7 as well)
  8823.  
  8824. Bitfields for WSS mixer volume (SoundBlaster):
  8825. Bit(s)    Description    (Table P0897)
  8826.  7    disable input source
  8827.  6-4    reserved???
  8828.  3-0    volume (00h = highest, 0Fh = lowest)
  8829. SeeAlso: #P0895,#P0896
  8830. ----------P05300537--------------------------
  8831. PORT 0530-0537 - OPTi "Vendetta" Windows Sound System emulation (default addr)
  8832. SeeAlso: PORT 0530h"WSS",PORT 0F8Dh"Vendetta",PORT 0F8Eh"Vendetta"
  8833.  
  8834. 0530  -W  (OPTi "Vendetta") WSS configuration register (see #P0898)
  8835. 0530  R-  (OPTi "Vendetta") WSS version register (see #P0899)
  8836. 0534  RW  (OPTi "Vendetta") codec index address register (see #P0900)
  8837. 0535  RW  (OPTi "Vendetta") codec indexed data register
  8838. 0536  RW  (OPTi "Vendetta") codec status register (see #P0901)
  8839. 0537  R-  (OPTi "Vendetta") codec direct data register - capture mode
  8840. 0537  -W  (OPTi "Vendetta") codec direct data register - playback mode
  8841.  
  8842. Bitfields for OPTi "Vendetta" WSS configuration register:
  8843. Bit(s)    Description    (Table P0898)
  8844.  7    reserved
  8845.  6    IRQ sense source
  8846.     0 = normal
  8847.     1 = interrupt auto-selection
  8848.  5-3    WSS IRQ
  8849.     000 = disable
  8850.     001 = IRQ7
  8851.     010-100 = IRQ9-IRQ11
  8852.     101 = IRQ5
  8853.     110-111 = reserved
  8854.  2-0    WSS DRQ
  8855.           playback    capture
  8856.     000 = disable    disable
  8857.     001 = DRQ0    disable
  8858.     010 = DRQ1    disable
  8859.     011 = DRQ3    disable
  8860.     100 = disable    DRQ1
  8861.     101 = DRQ0    DRQ1
  8862.     110 = DRQ1    DRQ0
  8863.     111 = DRQ3    DRQ0
  8864. SeeAlso: PORT 0530-0537
  8865.  
  8866. Bitfields for OPTi "Vendetta" WSS version register:
  8867. Bit(s)    Description    (Table P0899)
  8868.  7    available channel
  8869.     0 = DRQ0/1/3 and IRQ7/9/10/11 available
  8870.     1 = DRQ1/3 and IRQ7/9 available
  8871.  6    IRQ sense
  8872.     0 = no interrupt
  8873.     1 = WSS interrupt active
  8874.  5-0    version (04h)
  8875. SeeAlso: PORT 0530-0537
  8876.  
  8877. Bitfields for OPTi "Vendetta" codec index address register:
  8878. Bit(s)    Description    (Table P0900)
  8879.  7    initialization
  8880.     1 = codec cannot respond to parallel bus cycles
  8881.  6    mode change enable
  8882.  5    transfer request
  8883.     0 = transfers enabled during interrupt
  8884.     1 = transfers disabled by interrupt
  8885.  4-0    index address (see #P0902)
  8886.       (audio module control register 5 bit 5 must be set in order
  8887.       to access indexes 10h-1Fh)
  8888. SeeAlso: PORT 0530-0537
  8889.  
  8890. Bitfields for OPTi "Vendetta" codec status register:
  8891. Bit(s)    Description    (Table P0901)
  8892.  7    PIO capture data ready (read-only)
  8893.     0 = lower byte
  8894.     1 = upper byte (or 8-bit)
  8895.  6    PIO capture data ready (read-only)
  8896.     0 = right
  8897.     1 = left (or mono)
  8898.  5    PIO capture data register data ready (read-only)
  8899.     0 = stale ADC data (do not re-read)
  8900.     1 = fresh ADC data (ready for host data read)
  8901.  4    sample ADC capture overrun/DAC playback underrun occurred (read-only)
  8902.  3    PIO playback data needed (read-only)
  8903.     0 = lower byte
  8904.     1 = upper byte (or 8-bit)
  8905.  2    PIO playback data needed (read-only)
  8906.     0 = right
  8907.     1 = left (or mono)
  8908.  1    PIO playback data register ready for data (read-only)
  8909.     0 = valid DAC data (do not overwrite)
  8910.     1 = stale DAC data (ready for host data write)
  8911.  0    interrupt enable
  8912. SeeAlso: PORT 0530-0537
  8913.  
  8914. (Table P0902)
  8915. Values for OPTi "Vendetta" (82C750) codec indirect registers:
  8916.  00h    MIXOUTL output control register (see #P0903)
  8917.  01h    MIXOUTR output control register (see #P0903)
  8918.  02h    CDL input control register (see #P0904)
  8919.  03h    CDR input control register (see #P0904)
  8920.  04h    FML input control register (see #P0904)
  8921.  05h    FMR input control register (see #P0904)
  8922.  06h    DACL input control register (see #P0905)
  8923.  07h    DACR input control register (see #P0905)
  8924.  08h    frequency synthesizer and playback data format register (see #P0906)
  8925.  09h    interface configuration register (see #P0907)
  8926.  0Ah    pin control register (see #P0908)
  8927.  0Bh    error status and initialization register (read-only) (see #P0909)
  8928.  0Ch    ID register (see #P0910)
  8929.  0Dh    reserved
  8930.  0Eh    playback upper base count register
  8931.       (used for playback and capture in SB mode)
  8932.  0Fh    playback lower base count register
  8933.       (used for playback and capture in SB mode)
  8934.  10h    AUXL input control register (see #P0904)
  8935.  11h    AUXR input control register (see #P0904)
  8936.  12h    LINEL input control register (see #P0904)
  8937.  13h    LINER input control register (see #P0904)
  8938.  14h    MICL input control register (see #P0911)
  8939.  15h    MICR input control register (see #P0912)
  8940.  16h    OUTL output control register (see #P0913)
  8941.  17h    OUTR output control register (see #P0913)
  8942.  18h-1Bh reserved
  8943.  1Ch    capture data format register (see #P0906)
  8944.  1Dh    reserved
  8945.  1Eh    capture upper base count register
  8946.  1Fh    capture lower base count register
  8947. Note:    To access expanded mode registers (10h-1Fh), audio module control
  8948.       register 5 bit 5 must be set.
  8949. SeeAlso: #P0900
  8950.  
  8951. Bitfields for OPTi "Vendetta" MIXOUTL/R output control register:
  8952. Bit(s)    Description    (Table P0903)
  8953.  7-6    source select
  8954.     00 = LINE
  8955.     01 = CD
  8956.     10 = MIC
  8957.     11 = MIXER
  8958.  5    MIC +20dB gain enable
  8959.  4    reserved
  8960.  3-0    gain select for MIXOUTL/R
  8961.     0000-1111 = 0dB to +22.5dB in 1.5dB steps
  8962. SeeAlso: #P0902
  8963.  
  8964. Bitfields for OPTi "Vendetta" CD/FM/AUX/LINE L/R input control register:
  8965. Bit(s)    Description    (Table P0904)
  8966.  7    mute enable
  8967.  6-5    reserved
  8968.  4-1    gain select for CD/FM/AUX/LINE L/R
  8969.     0000-1111 = +12dB to -33dB in 3dB steps
  8970.  0    reserved
  8971. SeeAlso: #P0902
  8972.  
  8973. Bitfields for OPTi "Vendetta" DACL/R input control register:
  8974. Bit(s)    Description    (Table P0905)
  8975.  7    mute enable
  8976.  6-5    reserved
  8977.  4-0    gain select for DACL/R
  8978.     00000-11111 = 0dB to -46.5dB in 1.5dB steps
  8979. SeeAlso: #P0902
  8980.  
  8981. Bitfields for OPTi "Vendetta" frequency synth and playback/capture data format:
  8982. Bit(s)    Description    (Table P0906)
  8983.  7-5    audio data format
  8984.     000 = linear, 8-bit unsigned
  8985.     001 = µ-law, 8-bit companded
  8986.     010 = linear, 16-bit two's complement, little endian
  8987.     011 = A-law, 8-bit companded
  8988.     100 = reserved
  8989.     101 = ADPCM, 4-bit, IMA compatible
  8990.     110 = linear, 16-bit two's complement, big endian
  8991.     111 = reserved
  8992.       (bit 7 forced to 0 in mode 1)
  8993.  4    0 = mono
  8994.     1 = stereo
  8995.  3-0    (playback) clock frequency divide/audio sample rate frequency
  8996.     0000 = 8.0kHz
  8997.     0001 = 5.5125kHz
  8998.     0010 = 16.0kHz
  8999.     0011 = 11.025kHz
  9000.     0100 = 27.42857kHz
  9001.     0101 = 18.9kHz
  9002.     0110 = 32.0kHz
  9003.     0111 = 22.05kHz
  9004.     1000 = reserved
  9005.     1001 = 37.8kHz
  9006.     1010 = reserved
  9007.     1011 = 44.1kHz
  9008.     1100 = 48.0kHz
  9009.     1101 = 33.075kHz
  9010.     1110 = 9.6kHz
  9011.     1111 = 6.615kHz
  9012.     (capture) reserved
  9013. Note:    the contents of these registers can be changed only if mode change bit
  9014.       is set (see #P0900).
  9015. SeeAlso: #P0902
  9016.  
  9017. Bitfields for OPTi "Vendetta" interface configuration register:
  9018. Bit(s)    Description    (Table P0907)
  9019.  7    capture data transfer method (0 = DMA, 1 = PIO)
  9020.  6    playback data transfer method (0 = DMA, 1 = PIO)
  9021.  5-4    reserved
  9022.  3    autocalibration enable
  9023.  2    DMA channel mode (0 = dual, 1 = single)
  9024.  1    capture data in selected format enable
  9025.  0    playback data in selected format enable
  9026. SeeAlso: #P0902
  9027.  
  9028. Bitfields for OPTi "Vendetta" pin control register:
  9029. Bit(s)    Description    (Table P0908)
  9030.  7-2    reserved
  9031.  1    interrupt pin enable
  9032.       (goes active high on reaching the number of samples in base count
  9033.       register)
  9034.  0    reserved
  9035. SeeAlso: #P0902
  9036.  
  9037. Bitfields for OPTi "Vendetta" error status and initialization register:
  9038. Bit(s)    Description    (Table P0909)
  9039.  7    capture overrun
  9040.  6    playback underrun
  9041.  5    autocalibration state
  9042.     0 = in progress
  9043.     1 = not in progress
  9044.  4    current PDRQ/CDRQ status
  9045.     0 = inactive (low)
  9046.     1 = active (high)
  9047.  3-2    under/over range on right input channel
  9048.     00 = less than -1dB under range
  9049.     01 = between -1dB and 0dB under range
  9050.     10 = between 0dB and +1dB over range
  9051.     11 = greater than +1dB over range
  9052.  3-2    under/over range on left input channel
  9053.     00 = less than -1dB under range
  9054.     01 = between -1dB and 0dB under range
  9055.     10 = between 0dB and +1dB over range
  9056.     11 = greater than +1dB over range
  9057. SeeAlso: #P0902
  9058.  
  9059. Bitfields for OPTi "Vendetta" ID register:
  9060. Bit(s)    Description    (Table P0910)
  9061.  7-4    reserved
  9062.  3-0    codec revision ID (read-only)
  9063. SeeAlso: #P0902
  9064.  
  9065. Bitfields for OPTi "Vendetta" MICL input control register:
  9066. Bit(s)    Description    (Table P0911)
  9067.  7    mute enable
  9068.  6    MICR mix into OUTL enable
  9069.  5    reserved
  9070.  4-1    gain select for MICL
  9071.     0000-1111 = +12dB to -33dB in 3dB steps
  9072.  0    reserved
  9073. SeeAlso: #P0902
  9074.  
  9075. Bitfields for OPTi "Vendetta" MICR input control register:
  9076. Bit(s)    Description    (Table P0912)
  9077.  7    mute enable
  9078.  6    MICL mix into OUTR enable
  9079.  5    reserved
  9080.  4-1    gain select for MICR
  9081.     0000-1111 = +12dB to -33dB in 3dB steps
  9082.  0    reserved
  9083. SeeAlso: #P0902,#P0913
  9084.  
  9085. Bitfields for OPTi "Vendetta" OUTL/R output control register:
  9086. Bit(s)    Description    (Table P0913)
  9087.  7    mute enable
  9088.  6    reserved
  9089.  5-1    gain select for OUTL/R
  9090.     00000-11111 = 0dB to -93dB in 3dB steps
  9091.  0    reserved
  9092. SeeAlso: #P0902,#P0913
  9093. ----------P0601------------------------------
  9094. PORT 0601 - Headland HL21, Acer M5105 chipsets - SYSTEM CONTROL
  9095.  
  9096. 0601  -W  system control (see #P0914)
  9097. 0601  R-  status (see #P0915)
  9098.  
  9099. Bitfields for Headland HL21/Acer M5105 system control register:
  9100. Bit(s)    Description    (Table P0914)
  9101.  7    =1  power LED on
  9102.  6    =1  LCD backlight off
  9103.  5    ???
  9104.  4    ???
  9105.  3    ???
  9106.  2    =1  video chips disabled, screen blanked.
  9107.  1    ???
  9108.  0    =1  will lock up your machine!
  9109. SeeAlso: #P0915
  9110.  
  9111. Bitfields for Headland HL21/Acer M5105 status register:
  9112. Bit(s)    Description    (Table P0915)
  9113.  7    =0  if screen enabled always these values
  9114.  6    =0
  9115.  5    =0
  9116.  4    =0
  9117.  3    =0
  9118.  2    =1  (=0 at low power)
  9119.  1    =0  power OK
  9120.  0    =0
  9121. SeeAlso: #P0914
  9122. ----------P06040607--------------------------
  9123. PORT 0604-0607 - Gravis Ultra Sound Daughter Card by Advanced Gravis
  9124. Range:    dipswitch selectable from PORT 0530h-0533h, PORT 0604h-0607h,
  9125.       PORT 0E80h-0E83h, and PORT 0F40h-0F43h
  9126. ----------P0604060B--------------------------
  9127. PORT 0604-060B - Windows Sound System
  9128. Range:    PORT 0530h-0537h,PORT 0604h-060Bh,PORT 0E80h-0E87h,PORT 0F40h-0F47h
  9129. SeeAlso: PORT 0530h"Sound System"
  9130. ----------P06200627--------------------------
  9131. PORT 0620-0627 - PC network (adapter 1)
  9132. 0628-062F - PC network (adapter 2)
  9133. ----------P063E063F--------------------------
  9134. PORT 063E-063F - WINTEL.VXD - API
  9135. Note:    the WinTel remote-control program uses these two virtualized ports
  9136.       as an API between it main application HOST.EXE and the WINTEL.VXD
  9137.       driver
  9138. Index:    installation check;WinTel
  9139.  
  9140. 063E  R-  always reads 42h if WinTel.VXD is loaded (installation check)
  9141. 063E  -W  simulate keystroke to current Windows VM (scan code as it would
  9142.           be read from keyboard, including make/break in bit 7)
  9143.           (see also INT 09)
  9144. 063F  RW  watchdog/scratchpad (see #P0916)
  9145.  
  9146. Bitfields for WimTel watchdog/scratchpad byte:
  9147. Bit(s)    Description    (Table P0916)
  9148.  7-4    scratchpad; HOST.EXE uses as follows:
  9149.     bit 7: physical connection is active
  9150.     bit 6: sending file
  9151.     bit 5: receiving file
  9152.     bit 4: session is active
  9153.  1    retrigger watchdog (write 03h to PORT 063Fh to avoid reboot)
  9154.  0    enable watchdog (PC is rebooted if watchdog not retriggered every 20s)
  9155. ----------P0678067A--------------------------
  9156. PORT 0678-067A - Intel 82091AA - ECP-mode PARALLEL PORT
  9157. Range:    PORT 0678h or PORT 0378h, depending on the base address of the parallel
  9158.       port (0278h or 0378h)
  9159. SeeAlso: PORT 0278h,PORT 0778h,PORT 07BCh
  9160.  
  9161. 0278  RW  (when ECR bits 7-5=011) ECP Address/RLE FIFO (see #P0917)
  9162.     (this is the same address normally used for parallel port data)
  9163. 0678  RW  (when ECR bits 7-5=010) standard parallel port data FIFO (see #P0918)
  9164. 0678  RW  (when ECR bits 7-5=011) ECP data FIFO (see #P0919)
  9165. 0678  RW  (when ECR bits 7-5=110) test FIFO (see #P0920)
  9166. 0678  RW  (when ECR bits 7-5=111) ECP configuration A (see #P0921)
  9167. 0679  RW  (when ECR bits 7-5=111) ECP configuration B (see #P0922)
  9168. 067A  RW  extended control register (ECR) (see #P0923)
  9169.  
  9170. Bitfields for ECP Address/RLE FIFO:
  9171. Bit(s)    Description    (Table P0917)
  9172.  7    address/RLE-count select
  9173.     =0 RLE count
  9174.     =1 channel address
  9175.  6-0    channel address (bit 7 set)
  9176.     RLE count, less 1 (bit 7 clear)
  9177. Notes:    when using hardware RLE decompression, the associated data is written
  9178.       to the data FIFO (see #P0919) after the count is set here
  9179.     an RLE count of 1 (two identical bytes) will cause unnecessary
  9180.       expansions
  9181.     the peripheral device performs the interpretation of this byte as
  9182.       address or RLE count; writing to this port simply causes the AUTOFD#
  9183.       line to be asserted to tell the peripheral that the byte is not data
  9184. SeeAlso: #P0923,#P0918
  9185.  
  9186. Bitfields for ECP Standard Parallel Port data FIFO:
  9187. Bit(s)    Description    (Table P0918)
  9188.  7-0    standard parallel port data
  9189. Notes:    data written or DMAed to this port are buffered in the FIFO and
  9190.       transmitted to the peripheral using a standard ISA-compatible
  9191.       hardware handshake
  9192.     PORT 027Ah bit 5 must be clear to enable the forward transfer direction
  9193. SeeAlso: #P0917,#P0918,#P0923
  9194.  
  9195. Bitfields for ECP data FIFO:
  9196. Bit(s)    Description    (Table P0919)
  9197.  7-0    ECP-mode data
  9198. Notes:    data written or DMAed to this port are buffered in the FIFO and
  9199.       transmitted to the peripheral using an ECP hardware handshake;
  9200.       PORT 027Ah bit 5 must be clear to enable the forward transfer
  9201.       direction
  9202.     when PORT 027Ah bit 5 is set (reverse transfer), data is read from the
  9203.       peripheral and placed in the FIFO, from which it may be read by
  9204.       reading this port
  9205. SeeAlso: #P0917,#P0923,#P0920
  9206.  
  9207. Bitfields for ECP test FIFO:
  9208. Bit(s)    Description    (Table P0920)
  9209.  7-0    test FIFO data
  9210. Notes:    writes to this port write to the FIFO, reads from this port read from
  9211.       the FIFO, without actually transferring any data out the parallel
  9212.       port; FIFO overruns and underruns are ignored, simply reading/writing
  9213.       over the same slots again and again
  9214.     the ECR "full" and "empty" bits always keep track of the current state
  9215.       of the FIFO; the write threshold can be determined by filling the
  9216.       FIFO and then reading a byte at a time until a service interrupt is
  9217.       set in the ECR.  Similarly, the read threshold can be determined by
  9218.       emptying the FIFO, setting the direction bit in PORT 027Ah, and
  9219.       writing a byte at a time until a service interrupt is set.
  9220. SeeAlso: #P0917,#P0923,#P0919
  9221.  
  9222. Bitfields for ECP configuration A:
  9223. Bit(s)    Description    (Table P0921)
  9224.  7-4    (read-only) implementation identification
  9225.     bit 7: ISA-style interrupt
  9226.     bit 4: eight-bit implementation
  9227.  3-0    reserved
  9228. Note:    this register can only be accessed when the Extended Control
  9229.       Register bits 7-5 are set to 111
  9230. SeeAlso: #P0923,#P0922,#P0917,#P0919,#P0920
  9231.  
  9232. Bitfields for ECP configuration B:
  9233. Bit(s)    Description    (Table P0922)
  9234.  7    reserved (0)
  9235.  6    IRQ status (reflects actual value driven onto either IRQ5 or IRQ7; used
  9236.       to check for interrupt conflicts)
  9237.  5-0    reserved (0)
  9238. Notes:    this register can only be accessed when the Extended Control
  9239.       Register bits 7-5 are set to 111
  9240.     bit 4 of the parallel control port (027Ah/037Ah) must be cleared before
  9241.       bit 6 will show the interrupt status
  9242. SeeAlso: #P0923,#P0921
  9243.  
  9244. Bitfields for ECP Extended Control Register (ECR):
  9245. Bit(s)    Description    (Table P0923)
  9246.  7-5    ECP mode
  9247.     000 ISA-compatible
  9248.     001 PS/2-compatible (bidirectional port)
  9249.     010 ISA-compatible FIFO
  9250.     011 ECP
  9251.     100 reserved
  9252.     101 reserved
  9253.     110 test
  9254.     111 configuration
  9255.  4    disable ERROR interrupts
  9256.  3    enable DMA
  9257.     when bit 3 set and bit 2 clear, an interrupt is generated on the DMA
  9258.       terminal-count condition; this bit must be cleared to reset the TC
  9259.       interrupt
  9260.  2    disable FIFO/TerminalCount service interrupts
  9261.  1    (read-only) FIFO is full
  9262.  0    (read-only) FIFO is empty
  9263. Notes:    if the port is currently in modes 000 or 001, it may be switched into
  9264.       any other mode; if it is in a mode other than 000 or 001, it must
  9265.       first be switched into either mode 000 or 001 before selecting a mode
  9266.       other than one of those two
  9267.     if currently in an extended forward mode (010-111 and direction bit
  9268.       clear), software should wait for the FIFO to clear before switching
  9269.       back to modes 000 or 001
  9270.     if a FIFO overrun or underrun occurs, BOTH bits 1 and 0 are set; to
  9271.       clear the FIFO error condition, switch the port to mode 000 or 001
  9272. SeeAlso: #P0921,#P0922,#P0919
  9273. ----------P06800681--------------------------
  9274. PORT 0680-0681 - Microchannel POST Diagnostic (write only)
  9275.  
  9276. 0680  -W  Microchannel POST Diagnostic
  9277. 0681  -W  secondary MCA POST diagnostic
  9278. ----------P06A006A8--------------------------
  9279. PORT 06A0-06A8 - non-standard COM port addresses
  9280. Range:    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  9281. Note:    V20-XT by German magazine c't
  9282. ----------P06A806AF--------------------------
  9283. PORT 06A8-06AF - non-standard COM port addresses
  9284. Range:    selectable from 0280, 0288, 0290, 0298, 06A0, 06A8
  9285. Note:    V20-XT by German magazine c't
  9286. ----------P06E206E3--------------------------
  9287. PORT 06E2-06E3 - data aquisition (adapter 1)
  9288. ----------P06E8------------------------------
  9289. PORT 06E8 - S3 86C928 video controller (ELSA Winner 1000)
  9290. ----------P06E806EF--------------------------
  9291. PORT 06E8-06EF - 8514/A and compatible (e.g. ATI Graphics Ultra) - HORZ DISPLYD
  9292. SeeAlso: PORT 02E8h-02EFh,PORT 0AE8h,PORT 96E8h,PORT 9AE8h
  9293.  
  9294. 06E8w -W  CRT control: horizontal displayed
  9295. ----------P0746------------------------------
  9296. PORT 0746 - Gravis Ultra Sound by Advanced Gravis - BOARD VERSION / MIXER
  9297. SeeAlso: PORT 0240h-024Fh,PORT 0340h-034Fh
  9298.  
  9299. 0746  R-  board version (rev 3.7+)
  9300.         FFh      Pre 3.6 boards, ICS mixer NOT present
  9301.         05h      Rev 3.7 with ICS Mixer. Some R/L: flip problems.
  9302.         06h-09h      Revision 3.7 and above. ICS Mixer present
  9303.         0Ah-      UltraMax. CS4231 present, no ICS mixer
  9304. 0746  -W  Mixer Control Port
  9305. ----------P0778077A--------------------------
  9306. PORT 0778-077A - Intel 82091AA - ECP-mode PARALLEL PORT
  9307. Range:    PORT 0678h or PORT 0378h, depending on the base address of the parallel
  9308.       port (0278h or 0378h)
  9309. SeeAlso: PORT 0378h,PORT 0678h,PORT 07BCh
  9310.  
  9311. 0378  RW  (when ECR bits 7-5=011) ECP Address/RLE FIFO (see #P0917)
  9312.     (this is the same address normally used for parallel port data)
  9313. 0778  RW  (when ECR bits 7-5=010) standard parallel port data FIFO (see #P0918)
  9314. 0778  RW  (when ECR bits 7-5=011) ECP data FIFO (see #P0919)
  9315. 0778  RW  (when ECR bits 7-5=110) test FIFO (see #P0920)
  9316. 0778  RW  (when ECR bits 7-5=111) ECP configuration A (see #P0921)
  9317. 0779  RW  (when ECR bits 7-5=111) ECP configuration B (see #P0922)
  9318. 077A  RW  extended control register (ECR) (see #P0923)
  9319. ----------P07900793--------------------------
  9320. PORT 0790-0793 - cluster (adapter 1)
  9321. ----------P07BC07BE--------------------------
  9322. PORT 07BC-07BE - Intel 82091AA - ECP-mode PARALLEL PORT
  9323. SeeAlso: PORT 03BCh,PORT 0678h,PORT 0778h
  9324.  
  9325. 03BC  RW  (when ECR bits 7-5=011) ECP Address/RLE FIFO (see #P0917)
  9326.     (this is the same address normally used for parallel port data)
  9327. 07BC  RW  (when ECR bits 7-5=010) standard parallel port data FIFO (see #P0918)
  9328. 07BC  RW  (when ECR bits 7-5=011) ECP data FIFO (see #P0919)
  9329. 07BC  RW  (when ECR bits 7-5=110) test FIFO (see #P0920)
  9330. 07BC  RW  (when ECR bits 7-5=111) ECP configuration A (see #P0921)
  9331. 07BD  RW  (when ECR bits 7-5=111) ECP configuration B (see #P0922)
  9332. 07BE  RW  extended control register (ECR) (see #P0923)
  9333. ----------P080008FF--------------------------
  9334. PORT 0800-08FF - I/O port access registers for extended CMOS RAM or SRAM
  9335.         (256 bytes at a time)
  9336. Note:    sometimes plain text can be seen here
  9337. --------X-P080008FF--------------------------
  9338. PORT 0800-08FF - reserved for EISA system motherboard
  9339. ----------P0A200A23--------------------------
  9340. PORT 0A20-0A23 - Token Ring (adapter 1)
  9341. 0A24-0A27 - Token Ring (adapter 2)
  9342. ----------P0A79------------------------------
  9343. PORT 0A79 - Plug-and-Play - WRITE DATA PORT
  9344. Desc:    all data written to the Plug-and-Play configuration registers is
  9345.       written to this port, including the configuration byte which
  9346.       indicates the I/O port from which data is to be read when reading
  9347.       the configuration registers
  9348. SeeAlso: PORT 0279h
  9349.  
  9350. 0A79  -W  Plug-and-Play data writes
  9351. ---------------------------------------------
  9352.